我想使用java.util.Set
(和其他集合)但有一个转折:我希望contains()
,add()
等始终调用 Object's equals()
(更普遍地基于身份而不是平等进行操作)。我想我有办法,但它有很大的缺点。有没有合适的方法来做到这一点?抱歉,如果我遗漏了一些明显的东西。
这是我所做的:
public class OnlySelfEqual {
public final boolean equals(Object o){
return super.equals(o);
}
}
public class Example{
private Set<T extends OnlySelfEqual> set;
//etc
}
我看到的主要问题(可能还有很多其他问题)是所有 T 都必须从一个类扩展而不是实现一个接口,这是非常严格的。我想我想要的是一个“反向”接口,它列出了子类型无法实现(覆盖)的方法。我很确定那不存在。有什么建议么?