gpt4 book ai didi

java - 如何调试为什么Java消息输出总是为空?

转载 作者:行者123 更新时间:2023-12-02 03:21:08 24 4
gpt4 key购买 nike

这是我创建的 Message 类:

public class Message {
static String toString;
static String sender;
static String recipient;
static String messageBody ;

public Message(String Sender, String Recipient){
sender = Sender ;
recipient = Recipient ;
messageBody = "";
}

public String getSender(String s){
sender = s;
return sender;
}
public String getRecipient(String r){
recipient = r;
return recipient;
}
public void append (String a){
a = messageBody +a;
}
public void toString (String m){
messageBody = m;
m = ("From: " + sender + "\nTo: "+ recipient+"\n" + "\n" + messageBody);
System.out.print(m);
}
}

以下是main方法。我需要使用 toString() 方法进行打印。

import java.util.Scanner;

public class Lab8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Message mess1 = new Message (null, null);
Scanner keyboard = new Scanner (System.in);
String Sender1= Message.sender;
String recipient1 = Message.recipient;
String message = Message.messageBody ;

System.out.println ("Input Sender Name: ");
Sender1 = keyboard.next();
System.out.println ("Input Recipent Name: ");
recipient1 = keyboard.next();
do {
System.out.print ("Input Message: ");
message = keyboard.next();
} while (!message.equals("***") );

System.out.print(Message.toString);
}
}

每次都会打印null。我还需要包含附加方法,该方法允许我在每行之后更改消息正文。

最佳答案

这一切你都错了!不需要有一个名为 toString 的静态字符串字段,您所需要的只是 toString() 方法。但是,您仍然不需要在 toString() 方法中打印任何内容。只需从中返回一个字符串即可。

按如下方式更改您的 toString 方法:

public String toString (String m) {
messageBody = m;
m = ("From: " + sender + "\nTo: "+ recipient+"\n" + "\n" + messageBody);
return m;
}

然后要打印它,请在主方法中使用以下代码行:

System.out.print(mess1.toString(message));

不过,您的 getter 和 setter 是错误的。尝试阅读有关 getter 和 setter 的更多信息。

应该有两种方法:

  • getSender()
  • setSender()

getSender() 应该如下所示:

public String getSender(){
return sender;
}

并且 setSender() 应该如下所示:

public void setSender (String sender) {
this.sender = sender;
}

收件人也是如此

关于java - 如何调试为什么Java消息输出总是为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com