这个类声明在Java中意味着什么?

gin*_*eek 6 java generics

我只是学习树和一件我不明白的事情是类声明:

例如:class BinarySearchTree<T extends Comparable<? super T>>.

现在,请您解释一下括号中的内容和" <? super T>"?

你能引用我的任何好消息来源吗?谢谢.

Joe*_*oey 16

这声明了一个具有单个泛型类型参数的类.因为对于二叉搜索树,它必须比较两个项,这需要指定,以便编译器可以验证它.

尖括号中的部分是类型参数T和它的约束,它表示:

  • 无论如何T,它应该扩展Comparable(<T extends Comparable<...>>).
  • Comparable应该能够将自己与()的任何一个T或超类比较.T<? super T>

因为T通常可以是任何东西,这限制了对实现搜索树有意义的类型的选择.


nan*_*nda 5

<? super T>表示?是的父项T。如果?已知(例如X),则可以使用<T extends X>

编辑:这是Java泛型的良好来源:http : //java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf