如何将超类型列表列入子类列表?

问题:

例如,让我们说你有两个类:

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

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

回答:

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

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

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do you cast a List of supertypes to a List of subtypes?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

86 − = 84