小编典典

如何创建只有一个数组的对象数组列表?

java

我有以下代码片段,我不明白为什么它不起作用:

List<Object[]> listOfObjectArrays;
listOfObjectArrays = new ArrayList<>();
Object[] objectArray = new Object[] {1, "two", null};
listOfObjectArrays.add(objectArray);
// works just fine

listOfObjectArrays = Arrays.asList(objectArray, objectArray);
// works just fine

listOfObjectArrays = Arrays.asList(objectArray); // *
// compile error: Incompatible types. Required: List<java.lang.Object[]> Found: List<java.lang.Object>

listOfObjectArrays = Arrays.asList(new Object[] {1, "two", null});
// compile error: Incompatible types. Required: List<java.lang.Object[]> Found: List<java.lang.Object>

有人能指出我正确的方向吗?

我已经看到Jon
Skeet
在另一个问题上的回答,但是那里的最后一个示例对我来说不起作用。即使我将强制类型转换添加到标记为的行ObjectObject[]行中,也会*出现编译错误。


阅读 327

收藏
2020-11-26

共1个答案

小编典典

您始终可以Object[]通过明确指定type参数来告诉Java您想要列表:

Object[] objectArray = { 1, "two", null };
List<Object[]> listOfObjectArrays = Arrays.<Object[]>asList(objectArray);
2020-11-26