Java通配符参数化类型不兼容

时间:2014-06-18 08:33:26

标签: java generics wildcard

当我尝试将类型为List<List<Object>>的对象分配给带有通配符参数化类型List<List<?>>的变量时,我收到错误“不兼容的类型:List<List<Object>>无法转换到List<List<?>> “。

示例:

List<List<Object>> x = new ArrayList<>();
List<List<?>> y = x;   // Error

另一方面,将类型List<Object>的对象分配给类型为List<?>的变量的工作完全正常。

示例:

List<Object> x = new ArrayList<>();
List<?> y = x;   // Works fine

为什么?为什么它适用于List<?>但不适用于List<List<?>>

环境:JDK 7,Netbeans 8

0 个答案:

没有答案