У меня есть 2 типа аннотаций java, скажем XA и YA. У обоих есть метод (). Я анализирую исходный код и извлекаю объект Annotation. Теперь я хотел бы динамически преобразовать аннотацию к ее реальному типу, чтобы иметь возможность вызывать метод (). Как я могу это сделать без оператора instanceof
? Я действительно хочу избегать переключения источников. Мне нужно что-то вроде этого:
Annotation annotation = getAnnotation(); // I recieve the Annotation object here
String annotationType = annotation.annotationType().getName();
?_? myAnnotation = (Class.forName(annotationType)) annotation;
annotation.method(); // this is what I need, get the method() called
? _? означает, что я не знаю, каким будет тип myAnnotation. Я не могу использовать базовый класс для своих аннотаций XA и YA, поскольку наследование в аннотациях запрещено. Или это можно как-то сделать?
Спасибо за любые предложения или помощь.