出现这个错误是因为类型参数不匹配。List> 在类型参数上是不兼容的。解决方法是使用通配符来表示类型参数的不确定性。
以下是一个示例代码,展示如何解决这个问题:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List> list1 = new ArrayList<>();
ArrayList sublist1 = new ArrayList<>();
sublist1.add(1);
sublist1.add(2);
list1.add(sublist1);
List> list2 = new ArrayList<>();
List sublist2 = new ArrayList<>();
sublist2.add(3);
sublist2.add(4);
list2.add(sublist2);
// 将List>转换为List>
List extends List> list3 = new ArrayList<>(list1);
list3.addAll(list2);
// 打印List>
for (List sublist : list3) {
for (int num : sublist) {
System.out.print(num + " ");
}
System.out.println();
}
}
}
在这个示例中,我们创建了两个列表 list1 和 list2,分别存储 ArrayList? extends List
来声明一个新的列表 list3,将 list1 中的元素添加到 list3 中。通过使用通配符,我们可以将 List
转换为 List
,并避免出现类型不兼容的错误。>
最后,我们可以打印出 list3 中的元素,验证转换是否成功。