我想写一个返回注释方法值的方法。
我尝试使用此变体,但没有成功
参数:
这是我的代码:
cat
有可能吗?
答案 0 :(得分:1)
您的代码一直在寻找 default 值,但是您的问题从未提及默认值是否存在。要获得提供的值,必须在实例上invoke
使用该方法。
此外,在大多数情况下,您使用的getMethod
和getDeclaredMethod
错误。
这是一个可行的示例:
public static Object getAnnotationValue(Class clazz, Class annotationClazz, String parameterName) {
Annotation an = clazz.getAnnotation(annotationClazz);
System.out.println(an.annotationType().getMethod(parameterName).invoke(an));
}
所以对于像这样的类:
@PageName("testPage") //Same as @PageName(value = "testPage")
public class Example {}
通话
getAnnotationValue(Example.class, PageName.class, "value")
将打印
testPage