《面试经典系列》- Java获取反射机制的三种方法

一、概念

  反射机制,指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对任意一个对象,都能调用它的任意一个方法。这种动态获取信息,以及动态调用对象方法的功能,叫做java语言的反射机制。

二、应用

  生成动态代理,面向切面编程(在调用方法的前后各加栈帧)。

三、原理

  1. 首先要明确一个概念:一切皆对象 --- 类也是对象。
  2. 然后明白类中的内容:modifier constructor field method。
  3. 最后要明白类的加载:当Animal.class 在硬盘中时,是一个文件,当载入到内存中,可以认为是一个对象,是 java.lang.class 的对象。

四、获取反射常使用的3种方式

  1. 通过 new 对象实现反射机制;
  2. 通过路径实现反射机制;
  3. 通过类名实现反射机制。
  • 通过 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获取反射机制的三种方法,希望对大家有用。

原文地址:https://www.cnblogs.com/qiuhaitang/p/12563368.html