例如,假设你有两个类:
public class TestA {} public class TestB extends TestA{}
我有一个返回a的方法,List并且我想将列表中的所有对象都强制转换为,TestB以便最终得到a List<TestB>
a List<TestB>
简单地铸造List<TestB>几乎可行;但这是行不通的,因为你不能将一个参数的泛型类型转换为另一个参数。但是,你可以强制转换中间通配符类型,并且将允许它(因为你可以强制转换为通配符类型或从通配符类型强制转换,只是带有未选中的警告):
List<TestB>
List<TestB> variable = (List<TestB>)(List<?>) collectionOfListA;