是否可以创建不同类类型的集合,以便稍后可以检查对象以查看它是否是集合中任何这些类的对象?类似的东西:
for(Class c: collectionOfClasses){
if(o.getClass() == c){
//do something
}
}
这里,o是一些对象。我尝试使用:
private LinkedList<Class> collectionOfClasses...
Eclipse发出警告“类是原始类型。应该参数化对泛型类的引用。”做任何我想做的安全方式?
编辑#1
实际上我有不同类的对象(不构成层次结构),移动。它们都有一定的半径。只有当另一个对象属于其已知类之一时,特定对象才能与其半径中的其他对象连接。我能否清楚自己?
编辑#2
我想做的一个很好的例子: 假设我说英语和法语。但我可以识别身边的不同人类。假设我看到附近有10个人。然后我将尝试测试p1.getClass()是英语还是法语,p2.getClass()是英语还是法语。在对我周围的所有人进行检查后,我将与那些懂英语或法语的人交谈。
答案 0 :(得分:8)
您可以使用:
private LinkedList<Class <?>> collectionOfClasses...
如果您有更具体的内容,可以尝试:
private LinkedList<Class <? extends MyInterface>> collectionOfClasses...
答案 1 :(得分:2)
您可以使用ArrayList<Class<?>>
。
例如:
List<Class<?>> list = new ArrayList<Class<?>>();
list.add(String.class);
list.add(x.getClass());
答案 2 :(得分:1)
班级是generic type;要说你想要'任何'类,你会使用通配符“?”:
List<Class<?>> theList = ...
答案 3 :(得分:0)
不需要for循环。只需编写
就可以了if(collectionOfClasses.contains(o.getClass())) {
//do something
}