我有以下代码片段,我不明白为什么它不起作用:
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在另一个问题上的回答,但是那里的最后一个示例对我来说不起作用。即使我将强制类型转换添加到标记为的行Object或Object[]行中,也会*出现编译错误。
Object
Object[]
*
您始终可以Object[]通过明确指定type参数来告诉Java您想要列表:
Object[] objectArray = { 1, "two", null }; List<Object[]> listOfObjectArrays = Arrays.<Object[]>asList(objectArray);