类型不匹配:不能从 List<List<Object & Serializable & Comparable<?>>> 转换为 List<List<Object>>
时间: 2023-11-11 07:07:58 浏览: 231
ArrayList类-Java核心逻辑第11章
这个错误提示说明你尝试将一个 `List<List<Object & Serializable & Comparable<?>>>` 类型的对象转换为 `List<List<Object>>` 类型的对象,但是这两个类型不兼容。
`List<List<Object & Serializable & Comparable<?>>>` 类型表示一个元素类型为 `List`,其中每个元素又是一个元素类型为 `Object`、`Serializable` 和 `Comparable` 的对象的列表。而 `List<List<Object>>` 类型表示一个元素类型为 `List`,其中每个元素又是一个元素类型为 `Object` 的对象的列表。
由于 `Object & Serializable & Comparable<?>` 比 `Object` 类型更加具体,所以 `List<List<Object & Serializable & Comparable<?>>>` 类型的对象不能直接转换为 `List<List<Object>>` 类型的对象,因为前者包含了更多的信息。
如果你需要将 `List<List<Object & Serializable & Comparable<?>>>` 类型的对象转换为 `List<List<Object>>` 类型的对象,你可以考虑先将其中每个元素中的 `Object & Serializable & Comparable<?>` 类型的对象转换为 `Object` 类型的对象,再将整个列表转换为 `List<List<Object>>` 类型的对象。例如:
```java
List<List<Object & Serializable & Comparable<?>>> list1 = ...;
List<List<Object>> list2 = new ArrayList<>();
for (List<Object & Serializable & Comparable<?>> innerList : list1) {
List<Object> convertedInnerList = new ArrayList<>();
for (Object & Serializable & Comparable<?> obj : innerList) {
convertedInnerList.add((Object) obj); // 将 Object & Serializable & Comparable<?> 类型的对象转换为 Object 类型的对象
}
list2.add(convertedInnerList);
}
```
阅读全文