反射动态的获取字段&暴力访问
Posted 北方丶有佳人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射动态的获取字段&暴力访问相关的知识,希望对你有一定的参考价值。
import java.lang.reflect.Field; public class ReflectDemo3 { public static void main(String[] args) throws Exception { /* * 获取类中的成员 * 反射字段。 */ getFieldDemo(); } public static void getFieldDemo() throws Exception{ String className = "cn.qujianlei.domain.Person"; Class clazz = Class.forName(className); //获取指定age字段 // Field field = clazz.getField("name");//该方法只获取公有的 Field field = clazz.getDeclaredField("name");//获取权限提升 //要对非静态的字段操作必须有对象。 Object obj = clazz.newInstance(); //使用父类的方法将访问权限检查的能力取消 field.setAccessible(true);//暴力访问,能访问 field.set(obj, "lisi");//设置值 System.out.println(field.get(obj)); } }
public class Person { private String name; private int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public Person() { super(); System.out.println("person run"); } public void show(){ System.out.println("person show run"); } public static void staticShow(){ System.out.println("person static show run"); } public void paramShow(String name,int age){ System.out.println("show:"+name+"---"+age); } }
以上是关于反射动态的获取字段&暴力访问的主要内容,如果未能解决你的问题,请参考以下文章