&#34;&安培;&#34;或&#34;,&#34;:A <t extends =“”i1 =“”&=“”i2 =“”>和A <t extends =“”i1 =“”,= “”i2 =“”> </t> </t>

时间:2012-12-06 18:25:38

标签: java generics inheritance multiple-inheritance separator

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

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

它有不同的含义吗?目的

1 个答案:

答案 0 :(得分:14)

A<T extends I1, I2>

是具有两个参数的类型A

  1. T,必须是I1
  2. 的子类型
  3. I2
  4. 您可以将其读作&#34; A&lt;介词&gt;类型T,其延伸I1&lt;介词&gt;类型I2&#34;, 所以SortedMap<Key extends comparable, Value>是一个&#34;地图,从可比较的类型键到类型值&#34;


    A<T extends I1 & I2>
    

    是具有单个参数

    A类型
    1. T,其必须是I1的子类型和I2的子类型
    2. 您可以将其读作&#34; A&lt;介词&gt;类型T延伸I1和I2&#34;所以可以读取SortedSerializableSet<T extends Serializable & Comparable>&#34; T类型的一组有序元素,它们既可序列化又具有可比性&#34;