小编典典

如何将超类型列表转换为子类型列表?

all

例如,假设您有两个类:

public class TestA {}
public class TestB extends TestA{}

我有一个返回 a 的方法,List<TestA>我想将该列表中的所有对象转换为,TestB以便最终得到 a List<TestB>


阅读 71

收藏
2022-04-25

共1个答案

小编典典

简单地投射到List<TestB>几乎可以工作;但它不起作用,因为您不能将一个参数的泛型类型转换为另一个参数。但是,您可以通过中间通配符类型进行转换,并且它是被允许的(因为您可以在通配符类型之间进行转换,只是带有未经检查的警告):

List<TestB> variable = (List<TestB>)(List<?>) collectionOfListA;
2022-04-25