Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
一、通过Class类的forName静态方法实现反射
我们可以通过在运行时加载一个类,并获取该类的所有信息的方式。一般是通过全类名字符串来实现的,这种方式常常用于配置文件。
try { Class cls = Class.forName("java.lang.String"); } catch (ClassNotFoundException e) { e.printStackTrace(); }
在以上代码中,我们首先使用Class类的静态方法forName,来加载java.lang.String类。这种方式常常用于配置文件,使得我们在编译时期不需要知道所有的类名称。
二、通过对象的getClass方法实现反射
另一种通过运行时的对象来获取其对应类的反射方法,即通过调用对象的getClass方法
String str = "Hello World"; Class cls = str.getClass();
在以上代码中,我们创建了一个字符串对象str,并调用它的getClass()方法获取它所属的类。这种方式的优点是我们不需要知道对象的具体类型,可以在运行时动态获取。
三、通过类的class属性实现反射
这是java反射最简单的使用方式,我们可以直接通过class关键字来获取一个类的Class对象。
Class strCls = String.class; Class intCls = int.class;
在这个例子中,我们直接通过class关键字获取到了String类型和int类型对应的Class对象。相对于前两种方式,这种直接使用class关键字的方式最简单直接,但是这要求我们在编写代码的时候就已经知道了具体的类。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.beidandianzhu.com/g/1307.html