本文介绍了如何使用 JDT 为类级别注释生成多个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们使用 JDT 来生成 java 源代码.我们被困在生成一个类本身被注释如下的类:
We are using JDT for generating java source code. We are stuck in generating a class where the class itself is annotated as belows:
@SomeAnnotation({Class1.class, Class2.class})
请告诉我如何实现这一目标.我为此使用 NormalAnnotation 类,但无法相应地设置表达式.虽然可以设置字符串文字,但不能设置类.
Please let me know how this can be achieved. I am using NormalAnnotation class for this but could not set the expression accordingly. Though String literals can be set but Class cannot be.
推荐答案
我可以使用 NormalAnnotation 类来做到这一点,代码如下:
I was able to do this using NormalAnnotation class, here is the code:
//values 包含类名.
// values contains the class names.
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);
这篇关于如何使用 JDT 为类级别注释生成多个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!