码迷,mamicode.com
首页 > 其他好文 > 详细

反射动态的获取字段&暴力访问

时间:2016-10-03 19:26:16      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

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);
    }
    
    
}

 

反射动态的获取字段&暴力访问

标签:

原文地址:http://www.cnblogs.com/qjlbky/p/5929466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!