一、概念
反射机制,指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对任意一个对象,都能调用它的任意一个方法。这种动态获取信息,以及动态调用对象方法的功能,叫做java语言的反射机制。
二、应用
生成动态代理,面向切面编程(在调用方法的前后各加栈帧)。
三、原理
- 首先要明确一个概念:一切皆对象 --- 类也是对象。
- 然后明白类中的内容:modifier constructor field method。
- 最后要明白类的加载:当Animal.class 在硬盘中时,是一个文件,当载入到内存中,可以认为是一个对象,是 java.lang.class 的对象。
四、获取反射常使用的3种方式
- 通过 new 对象实现反射机制;
- 通过路径实现反射机制;
- 通过类名实现反射机制。
- 通过 Object 类的 getClass 方法来获取;
- 使用 .class 的方式;
- 使用 Class.forName 方法;
如下举例:
1 public class Test { 2 3 public static void main(String[] args) throws ClassNotFoundException { 4 5 //获取反射机制的3中方式; 6 7 //方法一:通过建立对象; 8 User user = new User(); 9 Class userClass1 = user.getClass(); 10 System.out.println(userClass1.getName()); 11 12 //方法二:通过所在路径(相对路径); 13 Class userClass2 = Class.forName("fanShe.User"); 14 System.out.println(userClass2.getName()); 15 16 //方法三:通过类名; 17 Class userClass3 = User.class; 18 System.out.println(userClass3.getName()); 19 } 20 }
五、总结
以上就是java获取反射机制的三种方法,希望对大家有用。