反射机制的剖析

本文详细介绍了Java反射机制的基本概念,包括如何获取Class对象、利用反射调用构造方法、成员变量及方法,以及反射如何帮助越过泛型检查和执行配置文件中指定的内容。通过这些内容,读者可以了解反射机制的应用场景及其潜在的性能影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是反射

Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。
在这里插入图片描述

二、反射能做什么

我们知道反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等,并可于运行时改变fields内容或调用methods。那么我们便可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等;但是需要注意的是反射使用不当会造成很高的资源消耗!
在这里插入图片描述

三、获取Class的三种方式

  • 使用类的class属性获取对应的Class对象。
  • 调用对象的getClass()方法,返回该对象所属类对应的Class对象。
  • 使用Class类中的静态方法forName(String className),该方法需要传入字符串参数,该字符串参数的值是某个类的全路径,也就是完整包名的路径。
    在这里插入图片描述

四、反射获取构造方法并使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子:
调用多个参数的构造方法
在这里插入图片描述
调用单个参数的构造方法
在这里插入图片描述
在这里插入图片描述

五、反射获取成员变量并使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子:
在这里插入图片描述

六、反射获取成员方法并使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子:
方法有返回值
在这里插入图片描述
调用私有成员方法
在这里插入图片描述

六、反射之越过泛型检查

练习1:在ArrayList< Integer >集合中添加一个字符串数据。
反射可以获取到原始参数的方法,以越过类型检查。
在这里插入图片描述

七、反射之运行配置文件指定内容

练习2:通过配置文件运行类中的方法。
在这里插入图片描述
在这里插入图片描述
在class.txt文件中配置类名方法等内容。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值