2011-12-16 57 views
0

我们正在使用JDT生成Java源代码。我们被困在生成类本身的注释类如下:如何使用JDT为类级别注释生成多个值

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

请让我知道这是如何实现的。我正在使用NormalAnnotation类,但无法相应地设置表达式。虽然可以设置字符串文字,但Class不可以。

回答

0

我能做到这一点使用NormalAnnotation类,这里是代码:

//值包含的类名称。

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);