我一直在从事我的项目(我也在使用 EMF 比较)。我需要为我正在使用的每个对象保留一个唯一的 ID,这就是我决定使用 IdentityHashCode 的原因,据我所知,这个值在编译过程中是相同的。
我已将对象作为另一个类的方法中的参数给出,但是当我尝试获取哈希码时,这与打印对象的值时看到的不同。
像这样的东西:
System.out.println("The Object is: "+obj)
System.out.println("The hash ID is: +Integer.toHexString(System.identityHashCode(obj)));
但结果我得到了这个:
对象是:***xxxxxxxxxxxxxx***.EntityImpl@18e588c (name: Comment) has been removed.
哈希 ID 为:1ec1758
如您所见,这两个值 (18e588c
和1ec1758
) 完全不同,但我不明白为什么。到目前为止,我所做的唯一一件事(并且有效)是获取对象的字符串,然后使用子字符串方法获取18e588c
(对于这个例子)
我会很感激任何答案。