获得类的字节码对象的三种方式
java源码(xxx.java)通过编译后形成字节码文件,字节码文件通过类加载器获得字节码对象,
通过字节码对象可以操作源码中的属性和方法。
方式一,使用类的class属性:
Class<java.util.Date> clazz1 = java.util.Date.class;
方式二,通过Class类中的静态方法forName(String className),传入类的全限定名(必须添加完整包名)
Class<?> clazz2 = Class.forName(“java.util.Date”);
方式三,通过对象的getClass方法来实现,其中,getClass()是Object类中的方法,所有的对象都可以调用该方法
java.util.Date str = new java.util.Date();
Class<?> clazz3 = str.getClass();
通过类加载器获得src下的任何资源的路径(类加载器的使用)
1 2 3 4 5 6 7 8 9 10 11 | public class Demo { public static void main(String[] args) { //获得Demo的字节码对象 Class clazz=Demo. class ; //获得Demo字节码文件的类加载器 ClassLoader classLoader = clazz.getClassLoader(); //获得classes(src)下的任何资源,注意!!src下 String path = classLoader.getResource( "jdbc.properties" ).getPath(); System.out.println(path); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?