可以创建一个referencetype数组吗?

时间:2014-11-09 09:01:33

标签: java arrays

例如我有一个对象的arraylist,我想测试它是什么类型的对象。

例如

ArrayList<Object> list = new ArrayList<Object>();
list.add("StringType");
list.add(5);
list.add(new randomClass());

ArrayList<Class?> define = new ArrayList<Class?>(); // <-- part i dont know what to do
define.add(String);
define.add(int);
define.add(randomClass);

for(x=0; .. ; ..){
if(list.get(x) instanceof define.get(x))
    //do stuff 
}
//Get results if list matches define?

或者我必须将引用类型存储为String并执行list.get(x).getClass().toString().equals(define.get(x));

1 个答案:

答案 0 :(得分:0)

您可以使用Class<?>作为第二个列表的类型参数 - 然后使用Class.isInstance执行“实例化”检查:

List<Class<?>> classes = new ArrayList<>();
classes.add(String.class);
classes.add(int.class);
classes.add(RandomClass.class);

for (int i = 0; i < list.size(); i++) {
    if (classes.get(i).isInstance(list.get(i))) {
        ...
    }
}