类的集合

时间:2011-07-06 15:35:16

标签: java class collections

是否可以创建不同类类型的集合,以便稍后可以检查对象以查看它是否是集合中任何这些类的对象?类似的东西:

for(Class c: collectionOfClasses){
    if(o.getClass() == c){
        //do something
    }
}

这里,o是一些对象。我尝试使用:

private LinkedList<Class> collectionOfClasses...

Eclipse发出警告“类是原始类型。应该参数化对泛型类的引用。”做任何我想做的安全方式?

编辑#1

实际上我有不同类的对象(不构成层次结构),移动。它们都有一定的半径。只有当另一个对象属于其已知类之一时,特定对象才能与其半径中的其他对象连接。我能否清楚自己?

编辑#2

我想做的一个很好的例子: 假设我说英语和法语。但我可以识别身边的不同人类。假设我看到附近有10个人。然后我将尝试测试p1.getClass()是英语还是法语,p2.getClass()是英语还是法语。在对我周围的所有人进行检查后,我将与那些懂英语或法语的人交谈。

4 个答案:

答案 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
}