Не уверен, что я здесь делаю неправильно. Моя цель - получить аннотацию метода (если существует).Java-аннотации вызывают исключение NullPointerException.
public class RunTest
{
public static void main(String[] args) throws Exception, NoSuchMethodException
{
MyAction action = new MyAction();
Method method = action.getClass().getDeclaredMethod("printSomething");
RequiredPermission permission = method.getAnnotation(RequiredPermission.class);
String value = permission.permissionName();
System.out.println("permission name: "+value);
}
}
класс MyAction
public class MyAction
{
@RequiredPermission(permissionName="SYSO", permissionValue = 0)
public void printSomething()
{
System.out.println("hi there");
}
public void printABC()
{
System.out.println("ABC...");
}
}
и аннотаций:
public @interface RequiredPermission
{
String permissionName();
int permissionValue();
}
я бы ожидал увидеть на консоли:
имя разрешения: SYSO
, но вместо этого я получаю:
Исключение в потоке "главный" java.lang.NullPointerException в com.annotation.RunTest.main (RunTest.java:14)