Java反射机制
反射机制概念:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
那么Java是如何动态的获取对象的方法和属性的呢?
JVM需要哪个类,classLoder就会去加载这个类,让后根据.class文件生成一个独一无二的class对象,该class对象记载了该类所有的属性和方法;让后JVM就根据该类的实例进行一些列的操作
class对象一般都是由虚拟机调用的(虽然我们也可以创建),基于此,实现了Java的反射机制
获取class对象的三种机制:
1.通过Object类的getClass()方法。例如:
Class c1 = new String(“”).getClass();
2.通过Class类的静态方法——forName()来实现
Class c2 = Class.forName(“MyObject”);
3.如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了与其匹配的Class对象,例如:
Class c3 = Manager.class;
Class c4 = int.class;
Class c5 = Double[].class;
通过class对象获取类的方法和属性:
获取方法:
getDeclaredMethods()
获取所有的方法
getDeclaredMethod(“方法名”,参数类型.class,……)
获得特定的方法
获取构造方法:
getDeclaredConstructors()
获取所有的构造方法
getDeclaredConstructor(参数类型.class,……)
获取特定的构造方法
获取成员:
getDeclaredFields()
获取所有的成员变量
getDeclaredField(“id”);
获取特定的成员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】