List<Object>是什么意思?
时间: 2024-06-01 21:08:39 浏览: 173
List<Object>是一个Java泛型,它表示一个可以存储任意类型对象的列表。其中,List是Java中的一个接口,它定义了许多操作列表的方法,如添加、删除、遍历等。而<Object>是泛型的一种形式,表示列表中存储的对象类型是未知的,可以是任何类型的对象。使用List<Object>可以实现一个通用的列表,可以存储任何类型的对象,但是需要在使用这些对象时进行类型转换。
相关问题
类型不匹配:不能从 List<List<Object & Serializable & Comparable<?>>> 转换为 List<List<Object>>
这个错误提示说明你尝试将一个 `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);
}
```
List<Object>类型是List<String>的父类吗?
List<Object>类型不是List<String>的父类。尽管String是Object的子类,但是Java中的泛型并不支持向上转型。List<String>和List<Object>是两个不同的类型,它们之间没有继承关系。这是因为泛型在编译期间会进行类型擦除,将泛型类型转化为它们的原始类型,而List<String>和List<Object>的原始类型都是List。因此,无法将List<String>直接赋值给List<Object>。
方法1:
通过遍历将List<String>转为List<Object>:
List<String> sun = Lists.newArrayList("a");
List<Object> father = sun.stream()
.map(e -> (Object)e)
.collect(Collectors.toList());
这样可以完成类型转换,将List<String>中的元素一个一个转换为Object类型,并放入新的List<Object>中。
阅读全文