8

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

我一直在使用A<T extends I1, I2>,但今天,我看到了A<T extends I1 & I2>。这两种符号有什么区别?

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

4

1 回答 1

14
A<T extends I1, I2>

是一个A有两个参数的类型

  1. T它必须是I1
  2. I2

您可以将其读作“A <preposition> type T which extends I1 <preposition> type I2”,SortedMap<Key extends comparable, Value>“从可比较类型键到类型值的映射”也是如此


A<T extends I1 & I2>

A具有单个参数的类型

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

您可以将其读作“扩展 I1 和 I2 的 <preposition> 类型 T”,因此SortedSerializableSet<T extends Serializable & Comparable>可以将 a 读作“可序列化和可比较的 T 类型的已排序元素集”

于 2012-12-06T18:28:48.733 回答