用法介绍Java反射三种方法


Java反射是指在运行状态下,对于任何一个类,都可以知道该类的所有属性和方法;对于任何对象,都可以调用其任何方法和属性;这种动态获取的信息和动态调用对象的功能称为java语言的反射机制。

一、通过Class类的forName静态方法实现反射

我们可以在运行过程中加载一个类来获取这个类的所有信息。通常通过所有类别的名字符串来实现,这种方法通常用于配置文件。

try {
	Class cls = Class.forName("java.lang.String");
} catch (ClassNotFoundException e) {
	e.printStackTrace();
}

上述代码中,首先使用Class类的静态方法forName来加载java.lang.String类。这一方法常用于配置文件,使我们在编译过程中不需要知道所有类名。

二、通过对象的getClass方法实现反射

另外一种通过运行对象来获得相应类的反射方法,即通过调用对象来获得Class方法

String str = "Hello World";
Class cls = str.getClass();

在上述代码中,创建了一个字符串对象str,并调用它的getClass()来获取它所属的类别。这种方法的优点是可以在运行时动态获取,而不需要知道对象的具体类型。

三、通过类的class属性实现反射

使用java反射最简单的方法就是使用java反射,可以直接使用class关键词来获得一个类别的Class对象。

Class strCls = String.class;
Class intCls = int.class;

通过class关键字直接获得了与string类型和int类型相对应的Class对象。与前两种方法相比,这种直接使用class关键字的方法是最简单、最直接的,但需要在编写代码时就知道具体的类别。

评论关闭