有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我的程序不打印它收到的数据而不是地址?

我创建了一个包含两个类的java程序。一个类(Main)包含传递到第二个类(Planning)的数据数组。第二个类(规划)使用这个数组为其变量“输入和输出”赋值。代码如下所示:

////Main.java///
import java.util.ArrayList
public class Main{
public enum State{A, D, H};

Planning plan = new Planning[]{
      new Plan(new State[]{State.A,State.A,State.A,State.A}, new State[]{State.D,State.A,State.A,State.D,State.A,State.A})}

另一个是课堂计划。java看起来像这样:

public class Planning {


    Main.State[] input;
    Main.State[] output;
    Planning(Main.State[] input,Main.State[] output){
    this.input = input;
    this.output = output;

    System.out.println("The state is " + input);
}

然而,当我打印出“最后输入”时,它会显示出来

[LMain$State;@4e98f805

我希望它显示从主函数传入的数组。有人能告诉我怎样才能做到这一点吗


共 (3) 个答案

  1. # 1 楼答案

    您可以重写Planning类中的toString()方法,因此当您打印出Planning对象时,它将打印您想要打印的信息

    差不多

    public class Planning {
            Main.State[] input;
            Main.State[] output;
    
            Planning(Main.State[] input,Main.State[] output) {
                this.input = input;
                this.output = output;
            }
    
            @Override
            public String toString() { 
                return "PRINT INFORMATION FROM THE INPUT HERE THUS THE LOGIC FOR PRINTING THE INFO IS ENCAPSULATED";
            }
    }
    
  2. # 3 楼答案

    要打印计划课上的一个小改动:

     public class Planning {
    
    
            Main.State[] input;
            Main.State[] output;
            Planning(Main.State[] input,Main.State[] output){
                this.input = input;
                this.output = output;
    
                for(int i=0;i<input.length;i++){
                    System.out.println("The state is " + input[i]);
                }
            }
        }