我正在学习编写自定义注释。我有一个简单的注释,需要验证方法的返回类型是否与注释中指定的返回类型匹配。以下是代码。
注释码:
@Target(ElementType.METHOD)
public @interface ReturnCheck {
String value() default "void";
}
注释处理器:
@SupportedAnnotationTypes("com.rajesh.customannotations.ReturnCheck")
public class ReturnCheckProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
for ( Element element : roundEnv.getElementsAnnotatedWith(ReturnCheck.class) ) {
//Get return type of the method
}
return false;
}
}
我想获取带注释方法的返回类型,以便我可以将它与注释中指定的值进行比较。
如何获取方法的返回类型?
答案 0 :(得分:2)
以下是您的需求:
if (element.getKind() == ElementKind.METHOD) {
TypeMirror returnType = ((ExecutableElement) element).getReturnType();
// use returnType for stuff ...
}
说明:
您可以查看ElementKind
以便分发其具体类型。这是建议的方法,而不是instanceof
。之后你知道它是一个ExecutableElement
,并且可以将其转换成一个。
有关详细信息,请参阅ExecutableElement和Element。