小编Tin*_*ong的帖子

使用Java 6注释处理器获取泛型类型的限定类名

我正在使用JDK 6的Annotation Processing API开发一个小代码生成器,并试图获得类中字段的实际泛型类型.为了更清楚,让我们说我有这样一个类:

@MyAnnotation
public class User {         
    private String id;
    private String username;
    private String password;
    private Set<Role> roles = new HashSet<Role>();
    private UserProfile profile;
}
Run Code Online (Sandbox Code Playgroud)

这是我的注释处理器类:

@SupportedAnnotationTypes({ "xxx.MyAnnotation" })
@SupportedSourceVersion(SourceVersion.RELEASE_6)
public class MongoDocumentAnnotationProcessor extends AbstractProcessor {

    private Types typeUtils = null;
    private Elements elementUtils = null;

    @Override
    public synchronized void init(ProcessingEnvironment processingEnv) {
        super.init(processingEnv);
        typeUtils = processingEnv.getTypeUtils();
        elementUtils = processingEnv.getElementUtils();
    }

    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        debug("Running " + getClass().getSimpleName());
        if (roundEnv.processingOver() …
Run Code Online (Sandbox Code Playgroud)

java generics annotations annotation-processing

14
推荐指数
2
解决办法
5354
查看次数