Java高级知识复盘之反射
- 反射:运行过程中,动态的获取类的信息以及对类进行操作的机制反射机制
- java程序的执行:
- 1,编译阶段 源文件.java 经过编译器编译 编译为.class文件(字节码文件 二进制文件)
- 2, 运行阶段 字节码文件被 类加载器 加载到JVM内存(方法区) 解释为机器指令 然后执行
- 对象 类型Class 类对象;
- 跨平台(一次编译 随处运行)
反射的使用
- 1,获取类
- 2,获取属性,变量
- 3,获取构造器
- 4,创建对象或调用对象
常用方法
获取类
获取类对象的方法
- getClass()
- Class.forName("全路径类名");
获取属性
- getFields(): 获取public修饰的成员变量对象,包括从父类继承下来的
- getField() :获取public修饰的成员变量对象,包括从父类继承下来的 ;指定名称进行获取
- getDeclaredFields(): 只获取本类声明的成员变量(任意权限修饰符都可以) 不包括从父类继承下来的
- getDeclaredField(): 只获取本类声明的成员变量(任意权限修饰符都可以) 不包括从父类继承下来的;指定名称进行获取
- setAccessible():打破封装
获取构造器
- getConstructors():获取public修饰的构造器
- getConstructor(): 获取public修饰的构造器
- getDeclaredConstructors():获取本类型的所有构造器
- getDeclaredConstructor():获取本类型对应参数的构造器
调用对象
- getMethods():获取public修饰的方法 包括从父类继承的
- getMethod():获取public修饰的方法 包括从父类继承的
- getDeclaredMethods(): 获取本类声明的方法(任意权限修饰符都可以)
- getDeclaredMethod(): 获取本类声明的方法(任意权限修饰符都可以)
- invoke():调用对应参数的方法