2

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

1 に答える 1

2

javassistが内部で使用しているコンパイラの言語コンプライアンスレベルはJava1.4に設定されていると思います。これは、ジェネリックスを理解しない理由を説明しています(1.4で導入されました)

于 2012-05-11T22:12:31.560 に答える