如何使用 JDT 为类级别注释生成多个值 [英] How to generate multiple values for a class level annotation using JDT

查看:30
本文介绍了如何使用 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 为类级别注释生成多个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆