反射_Class对象功能概述和反射_Class对象功能_获取Fileld

反射_Class对象功能概述

Class对象功能:

  >获取功能:

    1.获取成员变量们:

      >Field[] getFields(): 获取所有public修饰的成员变量

      >Field getField(String name):获取指定名称的public修饰符的成员变量

  

      >Field[] getDeclaredFields():获取所有的成员变量,不考虑修饰符

      >Field getDeclaredField(String name):获取所有的指定名称的成员变量,不考虑修饰符

    2.获取构造方法们:

      >Constructor<?>[] getConstructors()

      >Constructor<T> getConstructor(类<?>...parameterTypes)

      

      >Constructor<?>[] getDeclaredConstructors()

      >Constructor<T> getDeclaredConstructor(类<?>...parameterTypes)

    3.获取成员方法们:

      >Method[] getMethods()

      >Method getMethod(String name, 类<?>... parameterTypes)

       

 

      >Method[] getMethods()

 

      >Method getMethod(String name, 类<?>... parameterTypes) 

 

    4.获取类名:

      >String getName()

 

反射_Class对象功能_获取Fileld

Field:成员变量

  >操作:

    1.设置值

      >void set(Object obj,Object value)

    2.获取值

      >get(Object obj)

    3.忽略访问权限修饰符的安全检查

      >setAccessible(true):暴力反射

 

 

    public static void main(String[] args) throws Exception {
        Class per = Person.class;
        //Field[] getFields()
        Field[] fields = per.getFields();
        for (Field field : fields) {
            System.out.println(field);
        }
        System.out.println("=========");
        //Field getField(String name)
        Field a = per.getField("a");
        //获取成员变量a的值
        Person p = new Person();
        Object value = a.get(p);
        System.out.println(value);
        //设置a的值
        a.set(p,"张三");
        System.out.println(p);

        System.out.println("==================");
        //Field[] getDeclaredFields()
        Field[] declaredFields = per.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            System.out.println(declaredField);
        }
        //Field getDeclaredField(String name)
        Field d = per.getDeclaredField("d");
        //忽略访问权限修饰符的安全检查
        d.setAccessible(true);
        Object value2 = d.get(p);
        System.out.println(value2);

    }

 

 

posted @ 2022-07-22 09:55  魔光领域  阅读(39)  评论(0编辑  收藏  举报