通过 List<subclass> 向上转换到 List<superclass> 通过 List<?>
2022-09-04 02:20:23
我有一个A类,一个B类扩展A
在另一个C类中,我有一个字段
private List<B> listB;
现在,由于一些不寻常的原因,我必须在C中实现此方法。
public List<A> getList();
我试图通过List强制将listB字段的向上转换强制为List来做到这一点:<A>
<?>
public List<A> getList(){
return (List<A>)(List<?>)listB;
}
客户应该做的
List<A> list = getList();
for(A a:list){
//do something with a
}
我做了一些测试,它似乎工作正确,但老实说,我不确定所有可能的影响。
此解决方案是否正确?这是最好的解决方案吗?
感谢您的回答。