Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试为什么Java消息输出总是空的?_Java_Class_Methods_Printing_Null - Fatal编程技术网

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

如何调试为什么Java消息输出总是空的?,java,class,methods,printing,null,Java,Class,Methods,Printing,Null,以下是创建的消息I类: 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 ; m

以下是创建的
消息
I类:

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
。我还需要包括append方法,它允许我在每行之后更改消息体

你完全搞错了! 不需要一个名为
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的内容

应该有两种方法:

  • getSender()
  • setSender()
getSender()
应如下所示:

public String getSender(){
  return sender;  
}
public void setSender (String sender) {
  this.sender = sender;
}
setSender()
应该如下所示:

public String getSender(){
  return sender;  
}
public void setSender (String sender) {
  this.sender = sender;
}
收件人的情况也一样

你完全搞错了! 不需要一个名为
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的内容

应该有两种方法:

  • getSender()
  • setSender()
getSender()
应如下所示:

public String getSender(){
  return sender;  
}
public void setSender (String sender) {
  this.sender = sender;
}
setSender()
应该如下所示:

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

收件人也会遇到同样的问题

虽然这会编译和执行,但这里存在严重的问题。最大的问题是,当您确实需要实例字段时,消息会使用
静态
字段:从消息类中删除
静态
。我设置了一个返回变量,但仍然存在相同的问题。虽然这会编译和执行,但这里存在严重的问题。最大的问题是,当您确实需要实例字段时,消息使用了
静态
字段:从消息类中删除
静态
。我有,然后我设置了一个返回变量,但仍然存在相同的问题。