有没有办法在java泛型中强制类型参数来实现equals
方法?
例如,我写了这个类:public class Bag<Item> implements Iterable<Item>
,它有contains
方法,使用Item.equals
方法。所以我想确保泛型中传递的Object也将实现equals
方法。
答案 0 :(得分:7)
您可以创建一个名为ItemBase
的抽象基类,使得等于抽象,然后使用Item extend ItemBase
。
public abstract class ItemBase {
@Override
public abstract boolean equals(Object o);
}
public class Bag extends ItemBase
这会强制任何实现ItemBase的人专门实现equals