我有一个对象,Mutation,我已经“新建”了。但是当它使用 toString() 打印出来时,该对象会显示 Mutation@0。这对我来说似乎不太好。这可能意味着什么?
问问题
81 次
2 回答
3
那是无符号十六进制表示
Object 类的 toString 方法返回一个字符串,该字符串由对象作为实例的类的名称、at 符号字符“@”和对象的哈希码的无符号十六进制表示形式组成。换句话说,此方法返回一个等于以下值的字符串:
从某种意义上说zero
,哈希码尚未计算。
public String toString() {
237 return getClass().getName() + "@" + Integer.toHexString(hashCode());
238 }
于 2013-09-03T12:56:27.773 回答
1
如果您查看 的源代码Mutation
,您很可能会在其中找到:
@Override public int hashCode() {
//TODO: implement this properly!
return 0;
}
的默认实现仅报告返回 0的toString()
事实。hashCode
于 2013-09-03T13:11:15.387 回答