Java反射机制
相关类型: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.reflect.Method java.lang.reflect.Modifier 作用: 1、反编译 .class –> .java 2、通过反射机制访问java对象的属性、方法、构造方法等。这个在android中经常用到。 获取Class类型对象的三种方式: 1、Class.forName(className) 它就是将className加载到JVM的过程,得到堆中加载的class字节码的引用,类中的静态块会被执行,className必须为全名:包名+类名 这里写图片描述 2、类名.class java每个类型都有class属性,类中的静态块不会被执行 3、实例对象.getClass() 得到实例对象的运行时类,类中的静态块会被执行 下面来对上面的说法进行验证:下面来对上面的说法进行验证: public class CustomClass { static { System.out.println("executed static block"); } public CustomClass() { System.out.println("executed CustomClass constructor"); } } public class ReflectTest { public static void main(String[] args) throws Exception{ //第一种方式:Class.forName System.out.println("Class.forName==========="); //Class c1 = Class.forName("CustomClass"); } } 输出结果: Class.forName=========== executed static block 可以看到CustomClass的静态块被执行,说明在执行Class.forName会触发CustomClass类的加载。 public class ReflectTest { public static void main(String[] args) throws Exception{ //第二种方式:类名.class System.out.println("类名.class=============="); Class c2 = CustomClass.class; } } 输出结果: 类名.class============== 可以看到CustomClass的静态块没有执行,说明CustomClass.class没有触发CustomClass类的加载。 public class ReflectTest { public static void main(String[] args) throws Exception{ //第三种方式:实例对象.getClass() System.out.println("实例对象.getClass()========="); CustomClass customClass = new CustomClass(); Class c3 = customClass.getClass(); } } 输出结果: 实例对象.getClass()========= executed static block executed CustomClass constructor 这个比较好理解,在创建对象的时候就会触发CustomClass类的加载,然后创建对象,执行构造函数。 得到这个Class之后,我们就可以进行一些列的操作了。







http://developer.android.com/reference/java/lang/Class.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!