条款"最左边"和#34;最右边" (指仿制药)得到它们的含义?

时间:2015-06-27 04:58:23

标签: java generics type-theory

阅读 Angelika Langer's superb Generics FAQ ,我终于开始真正了解一些更为微妙的泛型。

但是我仍然对一些行话感到害怕。我的外行人对" 最左边 "的理解和" 最右边 "与Langer在 her FAQ 中使用它的方式截然不同。

  

" 在该翻译类型中执行擦除,这意味着   类型参数由最左侧绑定或对象替换,如果不是   已指定绑定.. "

...

  

" 类型删除 最左侧上限用于类型擦除和   替换字节代码中的type参数。在我们的Box {...}类中,所有出现的T都将被替换为   上限数。例如,如果类Box具有私有字段   类型T和方法void set(T content)用于设置此私有   字段,然后字段将在类型擦除后为Number类型   该方法将被转换为方法void set(Number content)... "

...

  

" 类型参数的类型擦除是最左边绑定... "

给定Box< T extends Number >;我的理解是T是类型参数,Number是绑定。然后,由于Number指向类型参数T 正确 ,因此为什么不会{&#t;} Number调用&# 34; 最右边绑定&#34;?这只是一个深奥的Mathemetician说话吗?它是否像正式类型理论一样,六个意味着九个,左意味着正确吗?

有人可以告诉我为什么在右边进一步视觉印刷的东西被调用,&#34; 最左边&#34;在类型理论中?

提前致谢。

1 个答案:

答案 0 :(得分:0)

啊!我怀疑它是因为它可能有多个绑定。 Like this

  

&#34; ...类型参数边界的规范语法是:

<TypeParameter extends Class & Interface 1 & ... & Interface N > 
     

边界列表由一个类和/或几个接口组成。

     

示例(具有多个边界的类型参数):

class Pair<A extends Comparable<A> & Cloneable , 
           B extends Comparable<B> & Cloneable > 
  implements Comparable<Pair<A,B>>, Cloneable { ... } 
     

这是一个泛型类,有两个类型参数A和B,两者都有   有两个界限。 ...&#34;

在这种情况下,我可以看到最左边 AND 最右边的绑定方式。