java - "&"或 ",": What is the difference between A<T extends I1 & I2> and A<T extends I1 , I2>

标签 java generics inheritance multiple-inheritance separator

多个通用接口(interface)分隔符:“,”或“&”

我一直在使用 A<T extends I1, I2>但是今天,我看到了A<T extends I1 & I2> . 这两种表示法有什么区别?

它有不同的含义吗?目的?

最佳答案

A<T extends I1, I2>

是一个类型 A有两个参数

  1. T它必须是 I1 的子类型
  2. I2

你可以将其理解为“A type T which extends I1 type I2”, 所以SortedMap<Key extends comparable, Value>是“从可比类型键到类型值的映射”


A<T extends I1 & I2>

是一个类型 A使用单个参数

  1. T它必须是 I1 的子类型和 I2 的子类型

你可以把它读作“A type T which extends I1 and I2”所以 SortedSerializableSet<T extends Serializable & Comparable>可以读作“一组已排序的 T 类型元素,它既可序列化又可比较”

关于java - "&"或 ",": What is the difference between A<T extends I1 & I2> and A<T extends I1 , I2>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750068/

相关文章:

c# - 如何强制调用 C# 派生方法

java - Java中的多线程垃圾收集: Sharing object outside prevents GC?

java - 更改 KeyPress 上 JTextField 的大小

java - Scala List[Int] 在 Java 中变成 List<Object>

Java Generics-我可以根据变量类型动态创建列表吗

java - 为什么 protected 修饰符在 Java 子类中的行为不同?

c++ - protected 派生类

java - 对象可以在 OOP 中定义新的兄弟类或子类吗?为什么或者为什么不?

scala - 通用微风向量法

c# - 有参数类型限制的泛型类型不能传递给有非泛型参数的方法