反射: 简单的说,反射机制指的是程序在运行时,能够获取自身的信息(即:能够获取java中反射类的字节码). 在java中,只要给定类的名字,那么就可以通过反射机制来回去该类的所有信息.
反射的作用:
在运行时能够判断任意一个对象的所属类,
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意对象的方法;
在运行时创建新类的对象;
获取字节码的三种方式:
1. Class.forName(className)
2. 类名.class
3.this.getClass()
然后将字节码中的方法,变量,构造函数等 映射到相应的Method, filed , Constructor等类, 这些类提供了丰富的方法被我们所用.
例子:
public class Base {
static int num = 1;
static {
System.out.println("Base " + num);
}
}
public class Main {
public static void main(String[] args) {
// 不会初始化静态块
Class clazz1 = Base.class;
System.out.println("------");
// 会初始化
Class clazz2 = Class.forName("zzz.Base");
}
}
本文深入讲解Java反射机制,包括其作用、获取字节码的三种方式及如何利用反射获取类的信息,如成员变量、方法和构造函数。通过具体示例说明了反射在不同场景的应用。
2626

被折叠的 条评论
为什么被折叠?



