我正在使用OpenPojo来测试pojos,我也在测试equals和hashcode。在包含pojo类的包中,有些类有两种方法,有些类则没有。所以我得到了测试错误。
如何编写测试来检查hashcode并且仅当它们出现在类中时才等于?
谢谢
答案 0 :(得分:0)
在您的测试程序中,您可以根据缺少的方法决定跳过,但是,这确实引发了一个更重要的问题,这就是为什么您只有其中一个实现了?
这将导致您的生产环境中的P1,您将很难理解它是如何发生的。
如果这些类最终会出现在任何Hash *集合(HashMap,HashTable,...等)或任何Set或由外部框架(例如Hibernate)缓存,那么你将陷入深深的麻烦,因为根据定义,java如果类相等,则它们的hashCode必须相等,如果它们的hashCode不同,则它们不能相等。
请参阅: Identity Management