在我们的Java项目中,我们倾向于使用Map<K, V>
和Set<E>
使用相当多的数据结构,其中键K
和E
不是简单的现有类(如整数或字符串),但我们开发的类:将新类CarVO
视为Map的关键。
当我们这样做时,我们需要确保我们安全地执行此操作,即我们需要确保在新类equals()
中实施hashCode()
和CarVO
。但是,默认情况下,Java并没有强制我们这样做,因为java.lang.Object
已经使用默认逻辑实现它们,这对项目来说几乎没用。这可以不被注意。
问题是,这些方法的默认实现会给我们的项目带来真正的风险。
你们有没有办法强迫编译器,另一个工具或代码分析器(也许是checkstyle?)来查找是否有任何开发人员忘了&#34;在Map&lt;&gt;中使用的类上实现equals()和hashCode()或设置&lt;&gt;?
我知道可能没有一个干净的解决方案,但任何(最好通过Jenkins或Ant自动化)解决方案肯定会有所帮助。
谢谢。