首页 > 代码库 > 反射动态的获取字段&暴力访问
反射动态的获取字段&暴力访问
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); } }
反射动态的获取字段&暴力访问
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。