类定义类名<>

时间:2011-12-07 20:30:01

标签: java generics

这个班级定义的含义是什么,那是什么类?

class Node<K extends Comparable<? super K>,V>

3 个答案:

答案 0 :(得分:13)

这是一个通用的类定义。它转换为:

  • class Node有两种类型作为参数:K和V.
  • 类型K 必须扩展类Comparable
  • Comparable本身,在这种情况下,将某种类型作为参数,让我们称之为T.
  • 类型T 必须是K的超类。

编辑:好的,因为请求了一个示例,这个类的简单实例化可能是:

Node<Integer, String> node = new Node<Integer, String>();

由于Integer类实现了Comparable<Integer>,它很好地符合上述描述(请注意super也允许类型T与K的类型相同。

V没有约束,所以它可以是任何类型。

答案 1 :(得分:1)

这是类KV的通用类,其中K是扩展Comparable超类的任何类的K的类型

答案 2 :(得分:1)

看起来它来自为解释目的而设计的红黑树的实现:

Red-black tree implemented in Java

除此之外,它是一个名为Node的类,它接受参数K和V,其中K扩展Comparable,它接受​​一个本身就是K的超类的参数。