java反射API

  1. 反射主要对象
    1. Class
    2. Constructor
    3. Field
    4. Method
  2. API-Class
    1. 获取Class对象
      1. Object.getClass()
      2. className.class
      3. Class.forName()
      4. Class.getComponentType() 获得数组对象的元素类型
    2. 获取Class信息
      1. getDeclaredClasses() 返回在类中定义的公共、私有、保护的内部类和接口。但不包括继承的内部类和接口
      2. getClasses() 返回在类中定义的公共的内部类和接口,以及从父类、父接口那里继承来的内部类和接口
      3. getClassLoader() 返回加载此类的类加载器
      4. getConstructors() 返回public构造器
      5. getDeclaredConstructors() 返回所有构造器
      6. getFields() 获取所有public成员变量
      7. getDeclaredFields() 获取所有成员变量
      8. getDeclaredMethods() 获取此类所有的public方法,包括继承
      9. getDeclaredMethods() 获取在此类中定义的所有方法(public, private), 但不包括继承的方法
    3. 产生对象
      1. newInstance() 只能使用无参构造器
  3. API-Field
    1. 获取类的成员变量信息(包括类变量和实例变量)
      1. 获取变量名 field.getName()
      2. 获取变量类型 field.getType()
      3. 获取变量的参数类型,针对泛型 field.getGenericType()
      4. 获取变量修饰符 field.getModifiers() 含义见 Modifier类
      5. 获取变量所在的类 field.getDeclaringClass()
    2. 读写成员变量的值
      1. 读取成员变量的值

        // public 
        field.get(foo)
        // private
        field.setAccessible(true)
        field.get(foo)
      2. 修改成员变量的值

        field.set(foo, "123")
        // private
        field.setAccessible(true)
        field.set(foo, "123")
  4. API-Method
    1. 获取方法信息
      1. method.getName()
      2. ...
    2. 反射调用方法
      1. method.invoke()
  5. API-Constructor
    1. newInstance() 生成对象,可以使用带参构造器

猜你喜欢

转载自www.cnblogs.com/bosslv/p/11364780.html
今日推荐