我有一堆实现同一个接口Command的类。
这些类被放置在Map中。
为了让Map正常工作,我需要让每个实现Command接口的类重写Object.equals(Object other)
方法。
这是没问题的。
但是我想强制要求重写equals方法 => 当某个实现Command的类没有重写equals时,编译出错。
这可能吗?
编辑:顺便说一下,我还需要强制重写hashcode...
我有一堆实现同一个接口Command的类。
这些类被放置在Map中。
为了让Map正常工作,我需要让每个实现Command接口的类重写Object.equals(Object other)
方法。
这是没问题的。
但是我想强制要求重写equals方法 => 当某个实现Command的类没有重写equals时,编译出错。
这可能吗?
编辑:顺便说一下,我还需要强制重写hashcode...
我认为不可能强制覆盖equals方法,因为它来自Object类。
另外需要注意的是,当你覆盖equals方法时,你需要同时覆盖Object类中的'hashCode'方法。如果你要将你的类的实例用作Map的键,这一点尤其重要。请查看以下文章: http://www.artima.com/lejava/articles/equality.html 该文章提供了一些有关如何正确覆盖equals方法的提示。
你能否为相关的映射提供自己的java.util.comparator
呢?