Java中的反射

本文介绍了Java中的反射机制,包括如何加载类、获取构造器、成员变量和方法,强调了其在破坏封装性与框架设计中的重要性,以及一个简单的案例展示了如何使用反射获取并操作对象属性。

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

反射

在java.long.reflect包下
提供用于获取有关类和对象的反射信息的类和接口。Reflection允许以编程方式访问有关已加载类的字段,方法和构造函数信息,以及使用反射字段,方法和构造函数在封装和安全限制内对其底层对应项进行操作。
AccessibleObject允许在必要的ReflectPermission可用时禁止访问检查。
Array提供了动态创建和访问数组的静态方法。
此包中的类以及java.lang.Class适用于调试器,解释器,对象检查器,类浏览器等应用程序,以及需要访问目标对象的公共成员(基于其运行时类)的对象序列化和javaBean等服务。由给定类声明的成员。

在这里插入图片描述

反射学什么

学习如何获取类的信息、操作它们

Step1:加载类,获取类的字节码:Class对象;
Step2:获取类的构造器:Constructor对象
Step3:获取类的成员变量:Field对象
Step4:获取类的成员方法:Method对象

step1:加载类

在这里插入图片描述

获取Class对象的三种方法

  • Class c1 = 类名.class
  • 调用Class提供方法:public static Class forName(String package);
  • Object提供的方法:public Class getClass(); Class c3 = 对象.getClass();

在这里插入图片描述

step2:获取类的构造器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获取类构造器的作用:依然是初始化对象返回
在这里插入图片描述
在这里插入图片描述

Step3:获取类的成员变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在反射中获取成员变量的作用:赋值、取值
在这里插入图片描述

在这里插入图片描述

step4:获取类的成员方法

在这里插入图片描述
在这里插入图片描述
成员方法的作用:依然是执行
在这里插入图片描述
在这里插入图片描述

作用

  • 基本作用:可以得到一个类的全部成分然后操作
  • 可以破坏封装性
  • 最重要的用途是:适合做Java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能

简单案例

需求:对于任意一个对象,该框架都可以把对象的字段名和对应的值,保存到文件中去
在这里插入图片描述
实现步骤:

  1. 定义一个方法,可以接收任意对象;
  2. 每收到一个对象后,使用反射获取该对象的Class对象,然后获取全部的成员变量;
  3. 遍历成员变量,然后提取成员变量在该对象中的具体值
  4. 把成员变量名、和其值,写到文件中去即可。

在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值