Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列表<;列表<&燃气轮机&燃气轮机;和列表<;列表>;java中存在不兼容的类型_Java_Generics_Casting_Raw Types_Unbounded Wildcard - Fatal编程技术网

列表<;列表<&燃气轮机&燃气轮机;和列表<;列表>;java中存在不兼容的类型

列表<;列表<&燃气轮机&燃气轮机;和列表<;列表>;java中存在不兼容的类型,java,generics,casting,raw-types,unbounded-wildcard,Java,Generics,Casting,Raw Types,Unbounded Wildcard,我没有以任何方式编译此代码: List<List> a = new ArrayList(); List<List<?>> b = new ArrayList(); a = b; // incompatible types b = a; // incompatible types List>b=newarraylist(); a=b; 工作 Set好的,这是由于一个微妙的语义差异 List 这是列表的原始类型,相当于T属于对象类型。所以这和说: List

我没有以任何方式编译此代码:

List<List> a = new ArrayList();
List<List<?>> b = new ArrayList();

a = b; // incompatible types
b = a; // incompatible types
List>b=newarraylist();
a=b;
工作


Set好的,这是由于一个微妙的语义差异

List
这是
列表
的原始类型,相当于
T
属于
对象
类型。所以这和说:

List<Object>
它会很好用的!这是因为
对象
是相同的,或者是该类型的某个派生

List<?>

你会得到一个编译时错误

您能给出示例代码来说明如何调用它吗?不幸的是,当原始类型用作泛型类型参数时,规范变得非常模糊。在
列表
List@Radiodef这是一个注释,但它似乎在中起作用,但是如果你使用OP的未编辑代码,你会发现它不起作用!不,不是
ArrayList这是不等价的。
ArrayList x=new ArrayList
a=b
有效,但不
b=a
如果你读了这个问题,你会发现OP要的是真正的
b=a
。说
List
和说
List
是不一样的——但你不是这一页上第一个提出这个主张的人。这种误解从何而来?我觉得很奇怪。
List
List
之间共享的语义子集与编译错误无关,这与泛型子类型规范中缺少原始类型有关。这并不能真正回答问题
List<Object>
List myList = new ArrayList();
myList.add(new Object());
List<?>
List<?> myList = new ArrayList<?>();
myList.add(new Object());