尖括号在此接口定义中的含义是什么?

时间:2012-08-24 11:00:11

标签: java generics interface

我对Java编程比较陌生,我遇到了一个接口声明和一个实现它的类:

public interface Abcd<E extends Comparable<E>>{
......
......
......
}

public class AbcdImpl<E extends Comparable<E>> implements Abcd<E>{
......
......
......
}

您能解释一下<E extends Comparable<E>>代表什么,以及<E>代表什么意思?

3 个答案:

答案 0 :(得分:5)

E代表一种类型,字母不需要是E它可以是任何字母,但通常人们会使用TK,{{1}等字母},E。使用以某种方式表示该类型用途的字母是有意义的。例如,在V接口Map中,K代表键,V代表值。

对于Map<K,V>,它意味着作为<E extends Comparable<E>>的泛型类型的E类本身需要实现AbcdImpl接口(对于它自己)。所以任何类Comparable都必须有一个方法

E

用于将compareTo(E obj) 的一个实例与另一个E实例进行比较。

答案 1 :(得分:2)

您看到的是通用类型声明。

请参阅http://en.wikipedia.org/wiki/Generics_in_Java

Abcd<E>通常被理解为“Abcd of E”。

例如,List是项目列表,但未指定哪种项目。 List是一个字符串列表,是泛型类型List的参数化版本。

答案 2 :(得分:0)

我认为你应该看看Lesson: Generics
它将帮助您理解Generic集合。