2
Javassistを使用してパラメータ付きListフィールドを定義するにはどうすればよいですか?パラメータを指定しなかったListクラスに不平を言っていないが、パラメータが与えられたときにCannotCompileExceptionが発生する以下のコードを試してみました。Javassistを使用してパラメータ付きListでフィールドを定義する方法
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;"
を説明するだろう内部のJava 1.4、に設定されている使用しているコンパイラのJavassistの言語準拠レベルを推測すると思いますチュートリアル(http://www.csg.ci.iu-tokyo.ac.jp/~chiba/javassist/tutorial/tutorial3.html#generics)「Javassistの下位レベルのAPIは、Java 5で導入されたジェネリックを完全にサポートしています。 CtClassのような上位レベルのAPIはジェネリックを直接サポートしていません」 –