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
我希望它显示从主函数传入的数组。有人能告诉我怎样才能做到这一点吗
# 1 楼答案
您可以重写
Planning
类中的toString()
方法,因此当您打印出Planning
对象时,它将打印您想要打印的信息差不多
# 2 楼答案
也许试着用
System.out.println("The state is " + Arrays.toString(input));
因为打印输入等同于打印输入。toString();这将打印阵列的内存地址
见http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
# 3 楼答案
要打印计划课上的一个小改动: