美文网首页
反射获取成员变量,并修改值ReflectAccess

反射获取成员变量,并修改值ReflectAccess

作者: 勇者与王者 | 来源:发表于2019-10-08 00:07 被阅读0次
    package Day32_Reflection;
    
    import java.lang.reflect.Field;
    
    /**
     * @Author quzheng
     * @Date 2019/10/7 22:44
     * @Version 1.0
     *
     * 反射获取成员变量,并修改值
     */
    public class ReflectAccess {
        public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, InstantiationException {
            Class c = Class.forName("Day32_Reflection.Person");
    
            // 获取成员变量Class类的方法 getFields() Class文件中所有公共成员变量
            // 返回值是 Field[]  Field 类 描述成员变量对象的类
            Field[] fds = c.getFields();
            for (Field f : fds ){
                System.out.println(f);
            }
    
            // 获取所有声明的成员变量 getDeclaredFields()
    
            // 获取指定的成员变量 getField(传递字符串类型的变量名)
            Field fname = c.getField("name");
            System.out.println(fname );
    
            // 调用 Field 类的方法 void set(Object obj, Object value)
            // Object obj 必须有对象
            Object obj = c.newInstance();
            fname.set(obj,"王五");
            System.out.println(obj);
    
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:反射获取成员变量,并修改值ReflectAccess

          本文链接:https://www.haomeiwen.com/subject/usyvpctx.html