首先我们得知道什么是反射:主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。
然后再了解Java中的反射:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能:
* 1.在运行时判断对象所属的类。
* 2.在运行时构造类的对象。
* 3.在运行时判断类所具有的成员变量和方法。
* 4.在运行时调用对象的方法。
反射就是把java类中的各种成分映射成一个个的Java对象
例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述)
解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.
- Java的反射用在:
后期的框架学习中,框架的底层是通过反射实现,简化了方法的调用者,让方法的调用者
快速显示项目需要功能。
实际开中,平台的开发需要使用反射,项目业务开发注重实现项目的功能(需求)
获取Class对象的三种方式
1.Class类的静态方法:forName(String className)这种方式最常用,此方法含义是:加载参数指定的类,并初始化,返回的是一个Class对象的引用。
2.Object ——> getClass();Object是所有类的根类,所有所有类都有getClass方法,返回一个对象的运行时类。
3.任何数据类型(包括基本数据类型)都有一个“静态”的class属性