我对Java编程比较陌生,我遇到了一个接口声明和一个实现它的类:
public interface Abcd<E extends Comparable<E>>{
......
......
......
}
public class AbcdImpl<E extends Comparable<E>> implements Abcd<E>{
......
......
......
}
您能解释一下<E extends Comparable<E>>
代表什么,以及<E>
代表什么意思?
答案 0 :(得分:5)
E
代表一种类型,字母不需要是E它可以是任何字母,但通常人们会使用T
,K
,{{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集合。