使用Reflection比较类型

时间:2014-01-06 10:07:37

标签: java reflection

我收到了这个错误:

  

无法比较的类型:CAP#1是新鲜的类和字符串   键入变量:       CAP#1扩展了Object的捕获?

Object object;
Field[] fields = object.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
   if (fields[i].getType() == String) { //On this line the compiler error is displayed
        //Can't get in here            
   }
}

我以为我在if声明中比较了两个相同的类?

1 个答案:

答案 0 :(得分:4)

getType会返回一个类,因此您必须将其与Class进行比较。要获得String的课程,您必须使用String.class

if (fields[i].getType() == String.class) {
        //Now you can get in here!            
}