Java实例的泛型类型

时间:2017-11-23 17:24:57

标签: java

我想知道为什么第一行编译但第二行不编译

new Integer(1) instanceof Comparable<?>;
new Integer(1) instanceof Comparable<Integer>;

错误消息是:

illegal generic type for instanceof

由于

1 个答案:

答案 0 :(得分:1)

来自JLS Sec 15.20.2

  

如果在instanceof运算符之后提到的ReferenceType不表示可重新生成的引用类型(第4.7节),那么这是一个编译时错误。

来自Sec 4.7

  

当且仅当下列之一成立时,类型才可以恢复:

     

...

     
      
  • 这是一个参数化类型,其中所有类型参数都是无界通配符(§4.5.1)。
  •   
     

...