【Java 核心笔记】04.07. 反射
反射库(reflection library)提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵 Java 代码的程序。 能够分析类能力的程序称为反射(reflective),其可以: 在运行中分析类 在运行中查看对象 编写泛型数组代码 调用任意方法 java.lang.Class 类用于描述 JVM 中使用的类。 不要过多地使用反射,其不适合编写应用程序。反射是很脆弱的,编译器很难帮助人们发现程序中的错误,因此很有可能会导致运行时出现异常。 在运行中分析类 获取Class对象的三种方式(JVM为每个类型管理一个 Class 对象): // 1. 通过实例对象获取 Random random = new Random(); Class cl = random.getClass(); System.out.println(cl.getName()); // 输出为 java.util.Random // 2. 通过静态方法 forName 获得类名对应的 Class 对象 Class cl = Class.forName("java.util.Random"); // 3. 通过`类.class`获取(例如cl2,基本类型也可以) Class cl1 = Random.class; Class cl2 = int.class; Class cl3 = Double[].class; // 历史原因,getName 方法有时会返回一个奇怪的名字 Double[]....