【发布时间】:2016-10-06 06:59:23
【问题描述】:
当我初始化 List 时,我可以这样做:
List<Object[]> foo = new ArrayList<>();
foo.add(new Object[]{816, "foo", 2.6});
但是当我想使用Arrays.asList 来简化它时:
List<Object[]> bar = Arrays.asList(new Object[]{"bar", 286});
无法编译错误:
incompatible types: inference variable T has incompatible bounds
equality constraints: java.lang.Object[]
lower bounds: java.lang.Object
为什么它不能正确地进行类型推断以及如何解决这个问题?
【问题讨论】:
-
作为一般经验法则,永远不要混合泛型和数组。 (一旦你理解了为什么它是一个好的经验法则,你就可以无视这条规则。)