编辑:我不认为这是重复的,因为这通常不是关于泛型类声明的含义的问题。在此示例中,更多的是关于什么是多余的,哪些不是。如果此处的参数化类型的唯一目的是确保其实现Comparable
,那么我在问题1和2中提出的可能结果是什么?
我正在阅读Java:《完全参考》(第11版),并且正在阅读有关泛型(在本例中为泛型接口)的内容,并且在代码下方有一些问题,这些问题在本书中没有得到解答(或更可能是我不明白):
interface Gen<T extends Comparable<T>> {
T GenMethod();
}
class GenImplementation<T extends Comparable<T>> implements Gen<T> {
T t;
GenImplementation(T t) {
this.t = t;
}
@Override
T GenMethod() {
return t;
}
}
class GenMain {
public static void main(String[] args) {
GenImplementation<Integer> ob = new GenImplementation<>(3);
System.out.println(ob.GenMethod());
}
}
我尝试过一点更改接口/类声明,我想知道当...时是否有任何后果(或在其他情况下可能产生的后果)
在接口和/或类声明的<T>
之后删除Comparable
,例如interface Gen<T extends Comparable>
?
在类声明的<T>
之后删除Gen
,例如class GenImplementation<T extends Comparable> implements Gen
?