2012-05-11 27 views
2

如何使用Javassist定義參數化列表字段?我已經嘗試了下面的代碼,它不會抱怨未參數化的List類,但在給定參數時會導致CannotCompileException。如何使用Javassist定義帶參數化列表的字段

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;" 

回答

2

我猜編譯了Javassist使用內部設置爲Java 1.4中的語言遵從性水平,這可以解釋爲什麼它不理解泛型(他們1.4中引入)

+2

從教程(http://www.csg.ci.iu-tokyo.ac.jp/~chiba/javassist/tutorial/tutorial3.html#generics)「Javassist的低級API完全支持Java 5引入的泛型。On另一方面,CtClass等高級API並不直接支持泛型。「 –

相關問題