反射(Reflection)是Java中一个强大的特性,它允许程序在运行时检查、修改以及调用自身的行为和结构。通过反射,你可以在运行时获取类的属性、方法、构造函数等信息,并且还能动态地创建对象、调用方法以及访问字段。以下是对Java反射的详细介绍:
核心类
Java反射主要涉及到以下几个核心类:
-
Class类:每个类都有一个对应的Class对象,用于表示这个类的元数据信息。通过
Class
对象,可以获取到类的详细信息。 -
Field类:表示类的成员变量(字段)。通过
Field
对象,可以访问和修改类的字段值。 -
Method类:表示类的方法。通过
Method
对象,可以调用类的方法。 -
Constructor类:表示类的构造函数。通过
Constructor
对象,可以动态地创建类的实例。
获取Class对象
在Java中,可以通过多种方式获取一个类的Class
对象:
-
通过类名调用
.class
属性:Class<?> clazz = MyClass.class;
-
通过对象的
getClass()
方法:MyClass obj = new MyClass(); Class<?> clazz = obj.getClass();
-
通过
Class.forName(String