黑马程序员技术交流社区
标题:
关于Object类toString问题
[打印本页]
作者:
Havorld
时间:
2014-7-28 23:33
标题:
关于Object类toString问题
我们直接打印对象的话打印的是哈希值是十六进制的,我重写了toString方法后怎么还不行
public String toString() {
return getClass().getName() + "@" + Integer.parseInt("(Integer.toHexString(hashCode()))",16);
作者:
黎志勇
时间:
2014-7-29 06:57
本帖最后由 黎志勇 于 2014-7-29 07:15 编辑
首先,你写的程序语法就有问题
return getClass().getName() + "@" + Integer.parseInt("(Integer.toHexString(hashCode()))",16);
复制代码
Integer.toHexString(hashCode()) 的结果本来就是一个字符串,你外面还用双引号括住,闹哪样?应该是
return getClass().getName() + "@" + Integer.parseInt(Integer.toHexString(hashCode()),16);
复制代码
其次,Integer.toHexString(hashCode()) 这个就已经是把哈希值转换成16进制的形式输出字符串,
你外面又来个 Integer.parseInt(Integer.toHexString(hashCode()),16); 把已经转成的16进制结果解释回去,这样不就跟直接调用hashCode()没啥两样了么,
return getClass().getName()+ "@" + Integer.toHexString(hashCode());
复制代码
只要这样就行了啊。
作者:
Havorld
时间:
2014-7-31 22:24
黎志勇 发表于 2014-7-29 06:57
首先,你写的程序语法就有问题
Integer.toHexString(hashCode()) 的结果本来就是一个字符串,你外面还用双 ...
3克油very好吃
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2