繁体   English   中英

具有equals和hashCode方法的通用接口,可以吗?

[英]Generic interface with equals and hashCode methods, is it possible?

我想定义一个接口,该接口将用于实现地图的键。 该映射使用equals和hasCode来查找和比较键。 我的键需要使用自定义计算来覆盖它们。 这是我想做的。 使用复杂密钥很重要。 谢谢

public interface CachedRequestKey<T>{
    public T complexKeyObject;

    @Override
    public boolean equals(T obj);

}

编辑失望的选民:我知道上面的代码无效。 我正在寻找实现接口的想法,以确保实现类使用泛型类型提供所需的方法。

Java不可能实现您想要的。 对象已经实现了equalshashCode ,因此每个子类也会自动执行。 接口或抽象类无法要求重新实现它。 假定为该类正确实现了给定类的equalshashCode

如果您确实需要类来实现特定的比较操作,并且不想偶然使用现有的相等方法,则可以在界面上定义自己的比较函数,并需要实现类来定义这些比较函数。 已经在equals和hashCode方法中实现了相等机制的类可以委托给现有方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM