Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_List_Object_Generics - Fatal编程技术网

Java 创建对象列表引发编译器错误

Java 创建对象列表引发编译器错误,java,arrays,list,object,generics,Java,Arrays,List,Object,Generics,我目前正在学习泛型作为编程类的一部分,我在理解以下代码为何会引发编译器错误时遇到问题: List<Object> objs = Arrays.asList(1,"2"); List objs=Arrays.asList(1,“2”); 据我所知,如果没有显式声明方法的类型参数,例如Arrays.asList()然后使用最合理的选择为您生成 以下代码: List<Object> objs = Arrays.<Object>asList(1,"2"); Li

我目前正在学习泛型作为编程类的一部分,我在理解以下代码为何会引发编译器错误时遇到问题:

List<Object> objs = Arrays.asList(1,"2");
List objs=Arrays.asList(1,“2”);
据我所知,如果没有显式声明方法的类型参数,例如
Arrays.asList()然后使用最合理的选择为您生成

以下代码:

List<Object> objs = Arrays.<Object>asList(1,"2");
List objs=Arrays.asList(1,“2”);
之所以有效,是因为我明确地告诉编译器,“我希望此方法的类型参数为Object”,但我很好奇为什么不能自动成功完成此操作?

List objs=Arrays.asList(1,“2”)
仅适用于Java 8:)

甚至
List objs=Arrays.asList(“a”、“b”)
也将使用Java8编译

检查这些参考资料:

List objs=Arrays.asList(1,“2”)
仅适用于Java 8:)

甚至
List objs=Arrays.asList(“a”、“b”)
也将使用Java8编译

检查这些参考资料:


出现此问题是因为向方法Arrays.asList传递了不同的类型参数,因此编译器试图找到类型参数的所有超类型的交集

您使用
String
int
参数创建了一个列表。所以编译器发现只有可序列化为公共接口

这将被汇编为:

List<? extends Serializable> list = Arrays.asList(1, "2");

List出现此问题是因为向方法Arrays.asList传递了不同的类型参数,因此编译器试图找到类型参数的所有超类型的交集

您使用
String
int
参数创建了一个列表。所以编译器发现只有可序列化为公共接口

这将被汇编为:

List<? extends Serializable> list = Arrays.asList(1, "2");

List“List objs=Arrays.asList(1,“2”);”的编译错误吗?我只是尝试了一下,没有发现任何编译错误。它适用于Java 8:)
您使用的Java版本是什么?类型推断正在慢慢变好,并且您的示例使用Java8编译得很好。您是否发现“List objs=Arrays.asList(1,“2”);”的编译错误?我只是尝试了一下,没有发现任何编译错误。它适用于Java 8:)
您使用的Java版本是什么?类型推断正在慢慢变得更好,并且您的示例使用Java8编译得很好。