Java 反射的获取成员变量
文章记录学习过程
只供参考
1.获取成员变量们
Field[] getFields() 获取所有public修饰的成员变量
Field[] getDeclaredFields() 获取所有成员变量,不考虑修饰符
Field setAccessible(true);//忽略访问权限修饰符的安全检查(暴力反射)
import java.lang.reflect.Field; public class ReflectDemo2 { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { Class personClass =Person.class; Field[] fields= personClass.getFields();//获取所有public的修饰的成员变量 for(Field field:fields){ System.out.println(field); } System.out.println("------------"); Field a= personClass.getField("a"); Person p=new Person(); Object value=a.get(p);//获取对象Person 的属性a的值 System.out.println(value); a.set(p,"张三"); System.out.println(p.toString()); System.out.println("===================="); Field[] declaredFields= personClass.getDeclaredFields();//获取所有的成员变量,不考虑修饰符 for (Field i:declaredFields){ System.out.println(i); } Field d = personClass.getDeclaredField("d"); d.setAccessible(true);//忽略访问权限修饰符的安全检查(暴力反射) Object value2 = d.get(p); System.out.println(value2); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)