我有一些需要使用List<SomeType>
的函数,并且我有一个对象,我知道它应该为ArrayList<SomeType>
类型。
如何测试它是否真的是真的,以及如何在没有警告的情况下将对象转换为该类型?
类似:
ArrayList<String> testL = new ArrayList<String>();
Object o = testL;
if (o instanceof ArrayList<String>){
List<String> l = (ArrayList<String>)o;
}
instanceof
检查给出一个错误,而强制转换给出一个[unchecked]
警告。
答案 0 :(得分:5)
一个简单的演员表无法实现您想要做的事情。这与Java代码编译期间的类型擦除有关。您可以执行以下两项操作之一: