前言
需要了解反射机制的前提,首先得了解编译期和运行期两个概念。
编译期:由.java到.class的过程。
运行期:执行了.class
1.概念
反射的概念:在运行期,对于任意一个类都能获取到他的所有属性和方法,并且任意一个对象都能调用其任意一个方法。
2.作用
- 运行时判断对象所属的类。
- 运行时构造一个类的对象。
- 运行时判断一个类所具有的成员变量和方法。
- 运行时调用任意一个对象的方法。
3.使用场景
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1ETMwITMykDM5EjNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
对于开发框架通用性的补充说明:
java中的对象有两种类型:1.编译时类型和运行时类型。编译时类型指在对象声明时所采用的类型。2.运行时类型指对象赋值时所采用的类型。
因此,程序在编译期无法预知该对象和类的真实信息,只能通过运行时来发现该对象和类的真实信息,而其真实信息(对象的属性和方法)通常通过反射机制来获取,这就是反射的核心功能。
可理解为运行时的增强。
4.获取Class类
使用反射机制最重要的就是Class类,获取class对象的方式有三种。
第一种本末倒置,第二种不具有通用性,常用第三种。
第一种,就是为了获取到class对象来创建对象,但是要获取class却需要创建一个具体对象。
第三种:
5.反射机制的常用类
6.使用
利用获取到的class对象,调用5中的API,实现具体操作。
后记
先到这儿,后边有时间再补充。若还是没看明白的。
下面附b站中老师的讲解。
b站课程
可以参考的书籍《java高级程序员面试笔试宝典》中对class API的阐述很详细。