有没有办法强制java泛型中的类型参数实现equals
方法?
比如我写了这个类:public class Bag<Item> implements Iterable<Item>
其中有 contains
方法,使用 Item.equals
方法。所以我想确保泛型中传递的对象也将实现 equals
方法。
最佳答案
您可以创建一个名为 ItemBase
的抽象基类,将 equals 抽象为抽象基类,然后让 Item extend ItemBase
。
public abstract class ItemBase {
@Override
public abstract boolean equals(Object o);
}
public class Bag extends ItemBase
这会迫使任何实现 ItemBase 的人专门实现 equals
关于java - 强制类型参数在java泛型中实现特定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322001/