强制类型参数在java泛型中实现特定方法

时间:2013-08-19 19:54:39

标签: java generics

有没有办法在java泛型中强制类型参数来实现equals方法? 例如,我写了这个类:public class Bag<Item> implements Iterable<Item>,它有contains方法,使用Item.equals方法。所以我想确保泛型中传递的Object也将实现equals方法。

1 个答案:

答案 0 :(得分:7)

您可以创建一个名为ItemBase的抽象基类,使得等于抽象,然后使用Item extend ItemBase

public abstract class ItemBase {

  @Override
  public abstract boolean equals(Object o);
}

public class Bag extends ItemBase

这会强制任何实现ItemBase的人专门实现equals