强制一个类重写.equals方法

57

我有一堆实现同一个接口Command的类。

这些类被放置在Map中。

为了让Map正常工作,我需要让每个实现Command接口的类重写Object.equals(Object other)方法。

这是没问题的。

但是我想强制要求重写equals方法 => 当某个实现Command的类没有重写equals时,编译出错。

这可能吗?

编辑:顺便说一下,我还需要强制重写hashcode...


接口命令 { public abstract boolean equals(Object that); } - Kanagavelu Sugumar
12个回答

0

我认为不可能强制覆盖equals方法,因为它来自Object类。

另外需要注意的是,当你覆盖equals方法时,你需要同时覆盖Object类中的'hashCode'方法。如果你要将你的类的实例用作Map的键,这一点尤其重要。请查看以下文章: http://www.artima.com/lejava/articles/equality.html 该文章提供了一些有关如何正确覆盖equals方法的提示。


0

你能否为相关的映射提供自己的java.util.comparator呢?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接