Ваш код продолжает искать значение 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")
напечатает
1022 * тестовая страница *