List<String>怎么强转为List<Object>
时间: 2023-10-29 13:53:18 浏览: 51
在Java中,不可以直接将List<String>强制转换为List<Object>。这是因为泛型在Java中是不可逆的,即使String是Object的子类,List<String>也不是List<Object>的子类。所以在进行强制类型转换时会出现编译错误。
解决方法有两种:
1. 使用遍历将List<String>转换为List<Object>。可以使用Java 8的Stream API来实现,首先将List<String>转为Stream,然后通过map操作将每个元素转为Object,最后使用collect操作将Stream转为List<Object>。
```
List<String> sun = Lists.newArrayList("a");
List<Object> father = sun.stream()
.map(e -> (Object)e)
.collect(Collectors.toList());
```
2. 创建一个新的List<Object>,然后将List<String>中的元素逐个添加到新的List<Object>中。这种方法需要手动遍历List<String>,并将每个元素转为Object,然后添加到新的List<Object>中。
```
List<String> sun = Lists.newArrayList("a");
List<Object> father = new ArrayList<>();
for(String s : sun) {
father.add((Object)s);
}
```