3

我正在尝试使用's 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 回答