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

标签 java generics

有没有办法强制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/

相关文章:

vb.net - 通用 TypeOf 运算符?

java - head=head.getNext() 和 head=current.getNext() 有什么区别?

c++ - 如何将迭代器泛化为某种类型

c# - 排序 IList 时未调用比较器

java - 没有同时监视文件夹

java - Minecraft 1.9 模组 block 渲染错误

java - 如何使用 MediaRecorder 打开或关闭录音

java - 来自 Maven 依赖项的 Spring Boot RestController 不起作用

java - Java 桌面应用程序的 ADFS/SAML 身份验证

java - 为什么这个嵌套的泛型转换会导致编译器错误