A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

反射是经常会碰到的一个问题,也是重点中的难点吧.有些确实记得不是很清楚,所以,把它梳理了一遍,也希望能对后来人有用:
一.反射就是使用Class对象,去获取类内部的构造方法,
   成员属性,成员方法,并且可以去调用;
二.通过Class获取构造方法:
        public Constructor[] getConstructors():获取所有的公有构造方法
          public Constructor[] getDeclaredConstructors():获取所有构造方法,包括公有、私有、受保护、默认
  
         public Constructor<T> getConstructor(Class<?>... parameterTypes):获取单个的公有的构造方法;
         public Constructor getDeclaredConstructor(Class<?>... parameterTypes):获取单个的构造方法,包括私有的

        Constructor-->newInstance():调用构造方法;
三.通过Class获取成员属性:
        1.Field[] getFields():获取所有的公共成员属性;
        2.Field[] getDeclaredFields():获取所有的成员属性,包括私有,默认,受保护

        3.Field getFiled(String name):获取某个公有的成员属性;name:字段名称
        4.Field getDeclaredFiled():获取某个成员属性。包括私有,默认,受保护
       
        为属性赋值:
                set(Object obj,Object value):
        获取属性的值:
                Object get(Object obj):
四.通过Class获取成员方法:
        1.Method[] getMethods():获取所有公有的成员方法;
        2.Method[] getDeclaredMethods():获取所有的成员方法,包括私有,默认,受保护;

        3.Method getMethod():获取某个公有的方法;
        4.Method getDeclaredMethod():获取某个方法,包括私有,默认,受保护
       
        调用方法:
        Method --> invoke(Object obj,Object param):

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马