Java 6 注解处理 -- 从注解中获取类
我有一个名为@Pojo的自定义注释,我用它来自动生成wiki文档:
package com.example.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
public @interface Pojo {
Class<?> value();
}
我这样使用它:
@Pojo(com.example.restserver.model.appointment.Appointment.class)
以注释资源方法,以便注释处理器可以自动生成一个 wiki 页面,描述它所期望的资源和类型。
我需要在注释处理器中读取字段的值,但我收到运行时错误。value
在我的处理器的源代码中,我有以下几行:
final Pojo pojo = element.getAnnotation(Pojo.class);
// ...
final Class<?> pojoJavaClass = pojo.value();
但处理器无法使用中的实际类。我想我需要一个代替作为真实类的替代品。我不知道如何得到一个。javax.lang.model.type.TypeMirror
我得到的错误是:
javax.lang.model.type.MirroredTypeException: Attempt to access Class object for TypeMirror com.example.restserver.model.appointment.Appointment
这是我的一个注释中提到的类。Appointment
@Pojo
不幸的是,关于Java注释处理的文档和/或教程似乎很少。尝试谷歌搜索。