3

の Dom メソッドStaticClassName.classを使用して、既存のクラスへのフィールド アクセスへの呼び出しを追加しようとしています。JDT

IllegalArgumentException使用して簡単な名前を作成しようとすると、 が表示されますast.newSimpleName("class")。これは、フィールド名としても使用されている場合にキーワードとして扱う
ためだと思います。JDT

JDT「クラス」を識別子名またはクラスオブジェクトにアクセスする別の方法として受け入れるようにする方法はありますか? (静的メソッドと非静的メソッドの両方で機能する必要があります)

4

1 に答える 1

4

このスレッドで述べたように:

<Type>.class通常の単純な名前ではなく、TypeLiteral. したがって、コードは次のようになるはずです。

TypeLiteral tr = ast.newTypeLiteral();
tr.setType(ast.newSimpleType(ast.newSimpleName("MyClass")));

その結果、式 " Myclass.class" が作成されます。

ところで、ASTView現在編集中の Java ソース ファイルを表示できる、非常に優れたプラグインがありますAST。さまざまな言語ステートメントの正しいノード タイプを判断するのに非常に役立ちます。ここから入手できます

( AST JDT コア Dom javadocも参照)

于 2009-10-26T05:00:08.073 に答える