在使用 Java 构造类(Construct)的实例(Instance)的过程中,会想查看实例的信息。如果使用 System.out.println(Object a) 会出现 “SomeType@2f92e0f4“ 。这个问题是什么引起的呢?
在用 print function 的时候,Java Object 会 invoke Object.toString() 方法。
// Code of Object.toString()
<code>public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());}</code>
如果想打印出可读的信息,应该 override toString() 方法。
比如
@Overridepublic String toString() { return getClass().getSimpleName() + "[name=" + name + "]";}
可以打印出 Person[name=Henry];
当你定义一个 类时,如果需要打印其中的信息,注意使用 overriding 重写 toString() 方法。
网友评论