如何使用JDT为类级别注释生成多个值

时间:2011-12-16 17:27:16

标签: annotations eclipse-jdt

我们正在使用JDT生成java源代码。我们一直在生成一个类,其中类本身被注释为:

@SomeAnnotation({Class1.class, Class2.class})

请告诉我如何实现这一目标。我正在使用NormalAnnotation类,但无法相应地设置表达式。虽然可以设置String文字,但Class不能。

1 个答案:

答案 0 :(得分:0)

我能够使用NormalAnnotation类完成此操作,这是代码:

// values包含类名。

NormalAnnotation normalAnnotation = ast.newNormalAnnotation();
Name name = ast.newName(annotationName);
normalAnnotation.setTypeName(name);
ArrayInitializer arrayInit = ast.newArrayInitializer();
for(String value : values){
  TypeLiteral tL = ast.newTypeLiteral();
  tL.setType(ast.newSimpleType(ast.newName(value)));
  arrayInit.expressions().add(tL);
}

MemberValuePair memberValuePair = ast.newMemberValuePair();
memberValuePair.setName(ast.newSimpleName("value"));
memberValuePair.setValue(arrayInit);

normalAnnotation.values().add(memberValuePair);