java - 如何在泛型中使用多个上限

标签 java generics

我有一个具有通用类型的接口(interface) Foo -

 public interface Foo<T> {  
     boolean apply(T t);  
 }

有另一个类 Bar 实现了这个接口(interface),但我想要的是 Bar 的通用类型应该是接口(interface) A 和 B 类型的集合,使用下面的定义它给出编译器错误 -

public class Bar implements Foo<Collection<? extends A & B>>{
  @Override
  public boolean apply(Collection<? extends A & B> collect){
   ...
  }  
}

您能建议实现这一目标的正确方法吗?

我只能在方法级别使用多个边界吗?

最佳答案

这行不通吗?

public class Bar<T extends A & B> implements Foo<Collection<T>>{
  @Override
  public boolean apply(Collection<T> collect){
   ...
  }  
}

关于java - 如何在泛型中使用多个上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034231/

相关文章:

c# - 泛型方法,使用where T : base. 为什么调用其他方法时不认为T是具体类型?

java - 不断变化的JSlider,用户交互事件?

java - 是否有可能从 java 获得 os x 中连接显示器的最大支持分辨率?

java - CDI:手动获取用泛型声明的类的 bean 实例

swift - 检查继承类和 super 类

java - 在返回与其对象相同类型的值的 final方法中使用泛型

java - 如何解决 Java 8 中的这个 'Lambdas should be replaced with method references' 声纳问题?

java - 计算比率

java - Android 使用套接字时崩溃

c# - 使用 Entity Framework 获取数据的通用函数