java 反射原理,以及三种机制(12)
1. 反射的概念
在程序运行时动态的改变程序结构和变量类型称为反射,重点是程序运行时
2. 反射的原理
java编译的程序变成.class文件字节码,反射机制就是操作的这个.class文件,首先加载相应类的字节码(加载到内存中),之后解析出对应字节码中的构造函数、方法和变量
3. 反射的获取class对象的三种方式
反射获取类对象的三个方法
第一种 比较通用的一种
Class a = Class.forName("com.package.Test");
第二种
Class a = com.package.Test.class
第三种
Test test = new Test();
Class a = test.getClass();
4. 反射中Class类的getMethod和getDeclaredMethod 以及getDeclaredField和getField的区别
getMethod 获取类的所有公共方法,包括继承的
getDeclaredMethod 获取本类的所有方法,包括公共非公共
getDeclaredField 获取所有字段包括静态、公有、私有
getField 获取类的public字段 包括父类的
简单来说, declare获取本身所有, 非declare获取公有