在我查看值的索引的通用数据结构之前,我想看看它是否this已经参数化的类型的实例.
但是当我这样做时Eclipse会抱怨:
@Override
public int indexOf(Object arg0) {
if (!(arg0 instanceof E)) {
return -1;
}
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
无法对类型参数E执行instanceof检查.请改为使用其擦除对象,因为泛型类型信息将在运行时被擦除
有什么更好的方法呢?
可能重复:
Java:Instanceof和Generics
我正在尝试编写一个将通用List转换为特定类型List的函数.找到下面的代码
public <T>List<T> castCollection(List srcList, Class<T> clas){
List<T> list =new ArrayList<T>();
for (Object obj : srcList) {
if(obj instanceof T){
...
}
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
但obj instanceof T显示编译错误 -
无法对类型参数T执行instanceof检查.请改为使用其擦除对象>,因为将在运行时擦除其他泛型类型信息.
任何澄清或获得预期结果的方法?
提前致谢.:)