按泛型类型过滤列表

时间:2016-11-15 08:42:20

标签: java generics

我想按通用类型过滤列表。我有resource我想要提取泛型类型T的所有元素,如下所示:

class ListFilter<T> {
    Resource resource;
    ArrayList<T> filteredElements

    public ListFilter(Resource resource) {
        this.resource = resource;
        TreeIterator<EObject> it = resource.getAllContents();
        filteredElements = new ArrayList<>();
        while(it.hasNext()) {
            EObject nextElement = it.next();
            if (nextElement instanceof T) {  //This is where the error occurs
                elements.add((T) nextElement);
            }
        }
    }
}

我在注释行上收到以下错误:

  

无法对类型参数T执行instanceof检查。使用它   擦除对象,因为其他泛型类型信息将是   在运行时删除

如何通过泛型类型T过滤resources并将元素保存到。{ filteredElements列表?我更喜欢不使用其他库的解决方案。

0 个答案:

没有答案