从其哈希码中检索对象。

时间:2015-01-30 18:37:15

标签: java tostring

如果没有重载,我可以通过toString引用对象,例如" com.app.MyObject@234d80"。但是,如果我只有字符串,那么无论如何都要获得对象。这样安全吗?

2 个答案:

答案 0 :(得分:3)

不,没有。即使有某个全局地图通过某个键返回一个对象,hashCode也不会作为该键,因为两个不同的对象可以具有相同的hashCode

答案 1 :(得分:0)

没有。

通过将对象的地址转换为整数(int)来生成标识哈希码。由于地址数量可能大于可能的整数数量,因此不能绝对保证两个不同的对象将具有不同的身份哈希码。

来自Object#hashCode

  

尽可能合理,类hashCode定义的Object方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM 编程语言不需要此实现技术。

(强调我的)