ast.newSimpleName()メソッドに問題があります。
'SomeJava.class'のようなSimpleNameを作成できません。ただし、このメソッドは「SWT.None」や「SomeJava.None」などの名前では正常に機能します。
コードは次のとおりです。
MethodInvocation loggerInstance = ast.newMethodInvocation();
loggerInstance.setExpression(ast.newSimpleName("Logger"));
loggerInstance.setName(ast.newSimpleName("getLogger"));
String[] name1 = {className.replace(".java", ""),"None"};
String[] name2 = {className.replace(".java", ""), "class"};
loggerInstance.arguments().add(ast.newName(name1)); // This works
loggerInstance.arguments().add(ast.newName(name2)); // This doesn't
これにはSimpleName以外のものを使用する必要があります。前もって感謝します。
編集:これは私が構築したいステートメントです:
Logger.getLogger(ClientTest.class);
分析中に、「クラス」リテラルを使用すると問題が発生することがわかりました。これを克服する方法がわからない。
ast.newName("class");
ast.newSimpleName("class");