如何使用Javassist定义参数化列表字段?我尝试了以下代码,它不会引用未参数化的List类,但在给定参数时会导致CannotCompileException。
ClassPool pool = ClassPool.getDefault();
pool.importPackage("java.util.List");
CtClass cc = pool.makeClass("Test");
CtField f = CtField.make("public List<String> p;", cc);
// throws javassist.CannotCompileException: [source error] syntax error near "lic List<String> p;"
答案 0 :(得分:2)
我猜测javassist内部使用的编译器的语言合规性级别设置为Java 1.4,这可以解释为什么它不理解泛型(它们是在1.4中引入的)