2011-12-16 47 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);