判断有误吧,field.get(对象)方法是取得字段值,不应该用这个方法,而是用用getType来取得字段类型来判断
package testone;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
class Init{
public int[] a = {1,2};
public char[] a1 = {'a','b'};
public int a2 = 3;
}
public class DeomTest01 {
public static void main(String[] args) throws Exception, IllegalAccessException {
Init init = new Init();
Field[] fields = init.getClass().getDeclaredFields();
for(Field field :fields ){
if(field.getType().isArray()){ //得到字段类型并判断是否是数组
System.out.println(field.getType().getName());
}else{
System.out.println(field.getType().getName());
}
}
}
}
结果
[I
[C
int
在反射中[代表数组,后面的I代表类型。所以[I就是整形数组。
[ 本帖最后由 蔡园园 于 2011-09-11 14:02 编辑 ] |