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():调用对应参数的方法