zoukankan      html  css  js  c++  java
  • 反射动态的获取字段&暴力访问

    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);
        }
        
        
    }
  • 相关阅读:
    栈——有效括号问题
    链表——判断是否有环,如果有,找到入口节点并返回(转自leetcode,个人留存)
    链表—判断是否有环
    链表—判断是否有环
    链表成对反转
    反转链表
    __attribute__机制
    linux write()
    错题本本-20180919
    C++ 11特性
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5929466.html
Copyright © 2011-2022 走看看