相关疑难解决方法(0)

Java:Instanceof和Generics

在我查看值的索引的通用数据结构之前,我想看看它是否this已经参数化的类型的实例.

但是当我这样做时Eclipse会抱怨:

@Override
public int indexOf(Object arg0) {
    if (!(arg0 instanceof E)) {
        return -1;
    }
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

无法对类型参数E执行instanceof检查.请改为使用其擦除对象,因为泛型类型信息将在运行时被擦除

有什么更好的方法呢?

java generics instanceof typechecking

127
推荐指数
6
解决办法
16万
查看次数

为什么instanceof不能使用Generic?

可能重复:
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检查.请改为使用其擦除对象>,因为将在运行时擦除其他泛型类型信息.

任何澄清或获得预期结果的方法?

提前致谢.:)

java generics instanceof typeerror

20
推荐指数
2
解决办法
4万
查看次数

标签 统计

generics ×2

instanceof ×2

java ×2

typechecking ×1

typeerror ×1