【发布时间】:2011-04-05 12:48:15
【问题描述】:
有没有提供Java动态代码生成并且还支持泛型的工具?
例如,Javassist 是我需要的那种工具,但它不支持泛型。
我编写了一个使用 Java 6 Compiler API 的小库,但据我所知,它依赖于 JDK。有没有办法指定另一个编译器?还是仅将我需要使用 Java Compiler API 调用的部分随我的应用程序一起提供?
【问题讨论】:
-
只是出于好奇:“不支持泛型”到底是什么意思?这对您来说有什么问题?我想你可以用原始类型做所有事情?
-
Javassist 不支持泛型类型。因此我无法编译泛型类。虽然我可以对对象和强制转换做同样的事情,但对于我正在做的事情来说,手头有泛型类型确实很有帮助。
-
如果我理解正确的话,类型擦除过程或多或少地将源代码中的泛型替换为对象并转换为字节码。字节码级别不存在泛型。
标签: java-compiler-api java dynamic-code