【发布时间】:2016-04-07 22:27:23
【问题描述】:
我目前正在学习泛型作为我的编程课程的一部分,但我无法理解为什么以下代码会引发编译器错误:
List<Object> objs = Arrays.asList(1,"2");
据我所知,如果您没有显式声明方法的类型参数,例如 Arrays.<Integer>asList();,那么它会使用最合理的选择为您生成。
以下代码:
List<Object> objs = Arrays.<Object>asList(1,"2");
之所以有效,是因为我明确告诉编译器,“我希望这个方法的类型参数是 Object”,但我很好奇为什么这不能自动成功完成?
【问题讨论】:
-
“List
-
它适用于 Java 8 :)
-
<? extends Object> List<? extends Object> java.util.Arrays.asList(? extends Object... arg0) -
您使用的是什么 Java 版本?类型推断正在慢慢变得更好,您的示例使用 Java8 编译得很好。
标签: java arrays list object generics