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在我认为的第一种情况下是有效的。为什么不呢?
答案 0 :(得分:6)
不同的是,String
类已经实现了Comparable<String>
,而Number
类没有实现T
。因此,有了这个限制,Comparable<String>
将实现Comparable<T>
和{{1}},这是不允许的。
类不能扩展或实现泛型类型的不同参数化实例化。