【问题标题】:generics and keyword final泛型和关键字 final
【发布时间】:2014-03-11 05:34:01
【问题描述】:

Whu Do it 是一个无效的结构

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 是 final 但 Number - 不是有关。

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

【问题讨论】:

标签: java generics final


【解决方案1】:

不同的是,String 类已经实现了Comparable&lt;String&gt;,而Number 类没有。因此,有了这个界限,T 将同时实现 Comparable&lt;String&gt;Comparable&lt;T&gt;,这是不允许的。

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
  • 2016-08-14
  • 2017-04-24
相关资源
最近更新 更多