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

Gol*_*irl -4 java arrays tostring output

我创建了一个包含两个类的java程序.一个类(Main)包含传递到第二个类(Planning)的数据数组.第二个类(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})}
Run Code Online (Sandbox Code Playgroud)

另一个Class Planning.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);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我打印出"结尾处的输入"时,它会显示出来

[LMain $国家; @ 4e98f805

我希望它显示从main函数传递到它的数组.有人可以告诉我如何实现这一目标?

JFP*_*ard 5

也许尝试使用 System.out.println("The state is " + Arrays.toString(input));

因为打印输入相当于打印input.toString(); 并打印出阵列的内存地址.

请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html