Динамическое приведение типов аннотаций Java

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

Спасибо за любые предложения или помощь.

5
задан skaffman 2 November 2011 в 23:02
поделиться