我正在尝试使用StaticClassName.class
的Dom方法添加对JDT
字段访问现有类的调用。
当我尝试使用IllegalArgumentException
创建简单名称时,我得到ast.newSimpleName("class")
我认为这是因为JDT
在将其用作字段名称时将其视为关键字。
有没有让JDT
接受“class”作为标识符名称或另一种访问类对象的方式? (它必须在静态和非静态方法中工作)
答案 0 :(得分:4)
如this thread中所述:
<Type>.class
不是通常的简单名称,而是TypeLiteral
。所以我认为你的代码应该更像这样:
TypeLiteral tr = ast.newTypeLiteral();
tr.setType(ast.newSimpleType(ast.newSimpleName("MyClass")));
结果会创建表达式“
Myclass.class
”。顺便说一句,有一个非常好的
ASTView
插件,可以查看当前编辑的Java源文件AST
。它对于确定不同语言语句的正确节点类型非常有用。 你可以得到它from here