hal*_*arp 4 java compiler-construction api javassist apache-commons-jci
在我正在进行的项目中,我需要在运行时生成Java类.我稍后在使用这些类时还需要避免使用反射.
我一直在寻找目前的解决方案,并找到了Javassist和Java 6 Java Compiler API.
我很困惑:
Javassist用什么来生成类?它是否使用反射或其他东西?
我编写了一些测试,发现很容易从源代码生成字节码,然后从生成的字节码加载类.使用Javassist相对于此解决方案有什么好处?
Javassist有几个选项,一个是一个小的包含编译器,允许您将Java片段转换为字节代码,从而可以轻松插入例如"System.out.println(....)"或"log.debug(... )"现有课程中的陈述.
我前一段时间写了一篇文章,展示了如何做到这一点.请参阅http://blogs.oracle.com/CoreJavaTechTips/entry/add_logging_at_class_load.注意:对于生产设置,不应使用此方法 - 那么您应该考虑在应用程序中使用面向方面编程.
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |