У меня есть 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, поскольку наследование в аннотациях не разрешено. Или можно как-то сделать?
Спасибо за любое предложение или помощь.