我试图使用泛型类型从我的类 objectCollection 获取对象类型列表。但是,我说错误
myClass无法强制转换为java.lang.Class
我以为我正在使用泛型类。我该如何解决这个问题?
@SuppressWarnings("unchecked")
public <T> ArrayList<T> getGameObj(ArrayList <T> obj) {
Class <T> objType = null;
while (objectIterator.hasNext()) {
objType = (Class<T>) objectIterator.getNext(); /* Error here */
if (objectIterator.getCurrent().getClass().isAssignableFrom(objType.getClass()))
obj.add( (T) objectIterator.getCurrent());
}
return obj;
}
答案 0 :(得分:1)
<强>选项1:强> 改变
objType = (Class<T>) objectIterator.getNext(); /* Error here */
到
objType = (Class<T>) objectIterator.next();
<强>选项2:强>
或者,您可以将Type和Class存储到HashMap中
HashMap<Class, Type>
。在定义对象时/在创建迭代器objectIterator
之前,将条目添加到此散列映射。然后使用hashmap从objectIterator.next()