Я начинаю использовать аннотации Java в большой степени. Один пример берет метод с аннотациями и преобразовывает их в 'telnet основанная на ' команда командной строки. Я делаю это путем парсинга аннотаций и рычага в jopt синтаксический анализатор опции.
Однако я делаю многие из них вручную. Например, обработка аннотации параметра Метода..
Method method = ... //;
Class[] parameters = method.getParamterTypes();
Annotation[][] annotations = method.getparamterAnnotations();
for( int i = 0; i < parameters.length; i++ )
{
// iterate through the annotation , see if each param has specific annotation ,etc.
}
Это очень избыточно и утомительно.
Есть ли какой-либо проект с открытым исходным кодом та обработка справки Аннотации?
Мы используем это для поиска конкретной аннотации:
for (Field field : clazz.getDeclaredFields()) {
if (field.isAnnotationPresent(MyAnnotation.class)) {
field.setAccessible(true);
String fieldName = field.getName();
Object fieldValue = field.get(myObj);
field.setAccessible(false);
}
}
Любой проект будет содержать точно такой же шаблонный код. Почему бы вам не сделать свою утилиту?
Я уверен, что вы могли бы использовать ASM:
Не совсем уверен, какая помощь вам нужна для аннотаций, но я бы предложил вам взглянуть на мой проект Annox. Вот API.
С помощью Annox вы можете, например, читать аннотации в
структуры, которые могут лучше соответствовать вашим потребностям. Вы можете читать произвольные аннотации из XML, запускать на них посетителей и т.д.