Java反射不但可以获取类所有的成员变量名称,还可以无视权限修饰符实现修改对应的值。
    获取当前类的所有成员变量:

    1. Field fields = clazz.getDeclaredFields();

    获取当前类指定的成员变量:

    1. Field field = clazz.getDeclaredField("变量名");

    getFieldgetDeclaredField的区别同getMethodgetDeclaredMethod
    获取成员变量值:

    1. Object obj = field.get(类实例对象);

    修改成员变量值:

    1. field.set(类实例对象, 修改后的值);

    同理,当我们没有修改的成员变量权限时可以使用: field.setAccessible(true)的方式修改为访问成员变量访问权限。
    如果我们需要修改被final关键字修饰的成员变量,那么我们需要先修改方法

    1. // 反射获取Field类的modifiers
    2. Field modifiers = field.getClass().getDeclaredField("modifiers");
    3. // 设置modifiers修改权限
    4. modifiers.setAccessible(true);
    5. // 修改成员变量的Field对象的modifiers值
    6. modifiers.setInt(field, field.getModifiers() & ~Modifier.FINAL);
    7. // 修改成员变量值
    8. field.set(类实例对象, 修改后的值);