摘要: 既然您已经看到了如何使用 Javassist 和 BCEL 框架来进行 classworking (请参阅本系列以前的一组文章), 我将展示一个实际的 classworking 应用程序。这个应用程序用运行时生成的、并立即装载到 JVM 的类来取代反射。在综合讨论的过程中,我将引用本系列的前两篇文章... 阅读全文
posted @ 2014-10-19 22:38 一天不进步,就是退步 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 在本系列的最后三篇文章中,我展示了如何用 Javassist 框架操作类。这次我将用一种很不同的方法操纵字节码——使用 Apache Byte Code Engineering Library (BCEL)。与 Javassist 所支持的源代码接口不同,BCEL 在实际的 JVM 指令层次上进行操... 阅读全文
posted @ 2014-10-19 22:25 一天不进步,就是退步 阅读(1601) 评论(0) 推荐(0) 编辑
摘要: 本系列的第 4 部分和第 5 部分讨论了如何用 Javassist 对二进制类进行局部更改。这次您将学习以一种更强大的方式使用该框架,从而充分利用 Javassist 对在字节码中查找所有特定方法或者字段的支持。对于 Javassist 功能而言,这个功能至少与它以类似源代码的方式指定字节码的能力同... 阅读全文
posted @ 2014-10-19 22:12 一天不进步,就是退步 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 在第 4 部分“用 Javassist 进行类转换”中,您学习了如何使用 Javassist 框架来转换编译器生成的 Java 类文件,同时写回修改过的类文件。这种类文件转换步骤对于做出持久变更是很理想的,但是如果想要在每次执行应用程序时做出不同的变更,这种方法就不一定很方便。对于这种暂时的变更,采... 阅读全文
posted @ 2014-10-19 21:59 一天不进步,就是退步 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 讲过了 Java 类格式和利用反射进行的运行时访问后,本系列到了进入更高级主题的时候了。本月我将开始本系列的第二部分,在这里 Java 类信息只不过是由应用程序操纵的另一种形式的数据结构而已。我将这个主题的整个内容称为classworking。我将以 Javassist 字节码操作库作为对 clas... 阅读全文
posted @ 2014-10-19 21:47 一天不进步,就是退步 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 在上个月的文章中,我介绍了Java Reflection API,并简要地讲述了它的一些基本功能。我还仔细研究了反射的性能,并且在文章的最后给出了一些指导方针,告诉读者在一个应用程序中何时应该使用反射,何时不应该使用反射。在本月这一期的文章中,我将通过查看一个应用程序来更深入地讨论这一问题,这个应用... 阅读全文
posted @ 2014-10-19 21:39 一天不进步,就是退步 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 在“Java编程的动态性,第1部分,”我为您介绍了Java编程类和类装入。该篇文章介绍了一些Java二进制类格式的相关信息。这个月我将阐述使用Java反射API来在运行时接入和使用一些相同信息的基础。为了使已经熟知反射基础的开发人员关注本文,我将在文章中包括反射性能如何与直接接入相比较。使用反射不同... 阅读全文
posted @ 2014-10-19 21:15 一天不进步,就是退步 阅读(294) 评论(0) 推荐(0) 编辑