Аннотации Java - Являются там какой-либо библиотекой помощника для читения/обрабатывания аннотаций?

Я начинаю использовать аннотации 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.
}

Это очень избыточно и утомительно.

Есть ли какой-либо проект с открытым исходным кодом та обработка справки Аннотации?

7
задан mjlee 7 April 2010 в 20:11
поделиться

3 ответа

Мы используем это для поиска конкретной аннотации:

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);
    }
}
6
ответ дан 7 December 2019 в 07:42
поделиться

Любой проект будет содержать точно такой же шаблонный код. Почему бы вам не сделать свою утилиту?

Я уверен, что вы могли бы использовать ASM:

1
ответ дан 7 December 2019 в 07:42
поделиться

Не совсем уверен, какая помощь вам нужна для аннотаций, но я бы предложил вам взглянуть на мой проект Annox. Вот API.

С помощью Annox вы можете, например, читать аннотации в

  • XAnnotation
  • XAnnotationField
  • XPackage
  • XClass
  • XConstructor
  • XField
  • XMethod
  • XParameter

структуры, которые могут лучше соответствовать вашим потребностям. Вы можете читать произвольные аннотации из XML, запускать на них посетителей и т.д.

0
ответ дан 7 December 2019 в 07:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: