打破代码封印!反射机制在框架设计中的72变实战

目录

一、定义

二、用途

三、反射基本信息

四、反射相关的类

4.1  Class类(反射机制的起源) 

4.1.1 Class类中的相关方法

4.2  反射实例

4.2.1 获得Class对象的三种方式

4.2.2 反射的使用

五、反射优点和缺点 

优点:

缺点:

六、重点总结


一、定义

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

二、用途

1. 在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量,方法或是属性是私有的或是只对系统应用开放,这时候可以利用 Java 的反射机制通过反射来获取所需的私有成员或方法。

2.反射最重要的用途就是开发各种通用框架,比如在 Spring 中,我们将所有的类 Bean 交给Spring 容器管理,无论是 XML 配置 Bean 还是注解配置,当我们从容器中获取 Bean 来依赖注入时,容器会读取配置,而配置中给的就是类的信息,Spring 根据这些信息,需要创建哪些 Bean Spring 就动态创建这些类。

三、反射基本信息

Java 程序中许多对象在运行时会出现两种类型:运行时类型(RTTI)和编译时类型,例如  Person p = new Student();  这句代码中在编译时类型为 Person ,运行时类型为 Student 。程序需要运行时发现对象和类的真实信息。而通过使用反射程序就能判断出该对象和类属于哪些类。

四、反射相关的类

类名 用途
Class类 代表类的实体,在运行的Java应用程序中表示类和接口
Field类 代表类的成员变量/类的属性
Method类 代表类的方法
Constructor类 代表类的构造方法

4.1  Class类(反射机制的起源) 

Class帮助文档

代表类的实体,在运行的Java应用程序中表示类和接口 。

Java文件被编译后,生成 .class 文件,JVM此时就要去解读 .class 文件,被编译后的java文件 .class 文件也被 JVM 解析为一个对象,这个对象就是 java.lang.Class 。这样当程序在运行时,每个 java文件就最终变成了 Class 类对象的一个实例。我们通过 Java 的反射机制应用到这个实例,就可以去获得甚至去添加改变这个类的属性和动作,使得这个类成为一个动态的类。

4.1.1 Class类中的相关方法

  • 常用获得类相关的方法
方法 用途
getClassLoader() 获得类的加载器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值