JAVA系列:Java反射机制

目录

什么是反射机制?

反射主要提供以下功能

如何使用反射

demo

反射API

暴力反射


什么是反射机制?

在通常情况下,如果有一个类,可以通过类创建对象;但是反射就是要求通过一个对象找到一个类的名称;

 

假设对于类ReflectionTest.java,我们知道的唯一信息是它的类名是 com.skywang.Reflection。 这时,我们想要知道ReflectionTest.java的其它信息(比如它的构造函数,它的成员变量等等),要怎么办呢?

这就需要用到“反射”。通过反射,我们可以解析出ReflectionTest.java的完整信息,包括它的构造函数,成员变量,继承关系等等。

 

 

反射主要提供以下功能

  • 在运行时判断任意一个类所具有的成员变量和方法);
  • 在运行时判断任意一个对象所属的类

这种动态获取的信息及动态调用对象的方法的功能称为:反射机制

如何使用反射

这个过程主要分为两步:

第1步:根据“类名”来获取对应类的Class对象。

第2步:通过Class对象的函数接口,来读取“类的构造函数,成员变量”等信息。

demo

JAVA系列:Java反射机制

 

 

反射API

Constructor:用来描述一个类的构造方法

Field:用来描述一个类的成员变量

Method:用来描述一个类的方法

Modifer:用来描述类内部各元素的修饰符

Array:用来对数组进行操作

 

暴力反射

暴力反射就是将类的一些私有的成员,通过getDeclaredMethod,getDeclaredField, getDeclaredConstructor

强制取出。通过setAccessible(true)方法。

 

 

 

 

 new与newInstance()的区别

获取Class对象的3种方法

Java的反射性能问题