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

Jon*_*nes 4 java generics interface

我是Java编程的新手,我遇到了一个接口声明和一个实现它的类:

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

public class AbcdImpl<E extends Comparable<E>> implements Abcd<E>{
......
......
......
}
Run Code Online (Sandbox Code Playgroud)

你能解释一下<E extends Comparable<E>>代表什么,通常<E>意味着什么吗?

Mat*_*yra 5

E代表一个类型,信不需要为E它可以是任何东西,但通常人们会用字母一样T,K,E,V.使用以某种方式表示该类型用途的字母是有意义的.例如,在Map界面中Map<K,V>,K代表键,V代表值.

至于<E extends Comparable<E>>它意味着作为通用类型的类型E AbcdImpl本身需要实现Comparable接口(为自己).所以任何类E都必须有一个方法

compareTo(E obj)
Run Code Online (Sandbox Code Playgroud)

用于比较一个实例E与另一个实例E.