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

例如,假设你有两个类:

public class TestA {}

public class TestB extends TestA{}

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

回答:

简单地铸造List<TestB>几乎可行;但这是行不通的,因为你不能将一个参数的泛型类型转换为另一个参数。但是,你可以强制转换中间通配符类型,并且将允许它(因为你可以强制转换为通配符类型或从通配符类型强制转换,只是带有未选中的警告):

List<TestB> variable = (List<TestB>)(List<?>) collectionOfListA;

以上是 Java如何将超类型列表转换为子类型列表? 的全部内容, 来源链接: utcz.com/qa/412064.html

回到顶部