泛型和关键字final

时间:2014-03-11 05:34:01

标签: java generics final

Whu这是一个无效的构造

class A <T extends  String & Comparable<T>>{}

出:

java: java.lang.Comparable cannot be inherited with different arguments: <T> and <java.lang.String>

但它有效

class A <T extends  Number & Comparable<T>>{}

我注意到它与String相关是最终的但是数字 - 不是。

但是T String在我认为的第一种情况下是有效的。为什么不呢?

1 个答案:

答案 0 :(得分:6)

不同的是,String类已经实现了Comparable<String>,而Number类没有实现T。因此,有了这个限制,Comparable<String>将实现Comparable<T>和{{1}},这是不允许的。

类不能扩展或实现泛型类型的不同参数化实例化。