反射机制

通过某种行为机制,实现对自身行为的描述和检测;
具体而言反射的功能有:

  • 得到一个对象所属的类:

    • java.long.Class对象,也叫字节码文件对象, 获取Class对象的方法:
      1. object类的getClass()方法:Class class = 对象名.getClass();
      2. 类的静态属性:Class class = 类名.class;
      3. Class类的静态方法:Class class = Class.forName(“类名”);
  • 获取一个类所有的成员面变量和方法:

    • 获取字段:

      • File对象:属于Java.base模块下的Java.lang.reflect包;
      • 通过Class获取;
    • 获取方法

      • 获取构造方法
        • Constructor对象:构造器对象,属于Java.base模块下的Java.lang.reflect包
        • Constructor对象常用方法:newInstance(Object…initargs)可以指定参数创建对象;
        • 通过Class对象获取构造器对象:
          • Constructor<?>[] getConstructors() :返回所有共有构造方法;
          • Constructor getConstructor​(Class<?>… parameterTypes)返回一个共有构造方法
          • getDeclaredAnnotation​(Class annotationClass) 返回私有构造方法
          • 其他方法参考java.long.Class类;
      • 获取普通方法
        • Method对象:方法对象,属于Java.base模块下的Java.lang.reflect包
        • Method对象的常用方法:invoke(Object object,Object…args),在指定对象上调用此方法;参数为args
          • 通过Class对象获取:
            • Method[] getDeclaredMethods() ;
            • Method getMethod​(String name, Class<?>… parameterTypes)
            • Method[] getMethods()
            • 详情参考Java.long.Class类;
  • 在运行时创建对象:

  • 在运行时调用对象的方法:
    反射机制
    反射机制
    反射机制
    反射机制