我有一个对象,突变,我有一个“new”ed。但是当它用tostring()打印出来时,这个对象说mutation@0. 我觉得不太好。那是什么意思?
2izufjch1#
这是无符号十六进制表示根据对象类中tostring()方法的文档class对象的tostring方法返回一个字符串,该字符串由对象作为示例的类的名称、at符号字符“@”和对象哈希码的无符号十六进制表示形式组成。换句话说,此方法返回的字符串等于:那个 zero 在某种意义上,hashcode还没有计算出来。源代码:
zero
public String toString() { 237 return getClass().getName() + "@" + Integer.toHexString(hashCode()); 238 }
vpfxa7rd2#
如果你看一下 Mutation ,很有可能你会发现:
Mutation
@Override public int hashCode() { //TODO: implement this properly! return 0; }
的默认实现 toString() 只是报告了一个事实 hashCode 返回0。
toString()
hashCode
2条答案
按热度按时间2izufjch1#
这是无符号十六进制表示
根据对象类中tostring()方法的文档
class对象的tostring方法返回一个字符串,该字符串由对象作为示例的类的名称、at符号字符“@”和对象哈希码的无符号十六进制表示形式组成。换句话说,此方法返回的字符串等于:
那个
zero
在某种意义上,hashcode还没有计算出来。源代码:
vpfxa7rd2#
如果你看一下
Mutation
,很有可能你会发现:的默认实现
toString()
只是报告了一个事实hashCode
返回0。