我想按通用类型过滤列表。我有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
列表?我更喜欢不使用其他库的解决方案。