类反射的应用

     利用java的反射机制,可以轻松获取类属性的key和value,主要通过两个方法来获取:getFields()和getDeclaredFields();

通过这两种方法都可以获取到属性名和属性值,但是两者之间还是有区别的:

     其中getFields() 只能获取权限为public的属性,包括父类的,而getDeclaredFields()可以获取public、protected、private的属性。

可以使用getFields()的特性来屏蔽那些不想被输出的属性,通过将之设置为private或者protected就可以。

例子:

for(T t : targetList) {
    Class clazz = t.getClass();
    Map<String, Object> valueMap = new LinkedHashMap<String, Object>();
    for(Field field : clazz.getFields()) {//getFields只能获取public的属性,而getDeclaredFields可以获取任何权限的属性
        field.setAccessible(true);
        valueMap.put(field.getName(), field.get(t));//将属性和属性名字放入valueMap
    }
}

你可能感兴趣的:(java,反射)