Руководство по использованию меток, также известное как краткое описание, - это краткая аннотация, описывающая, когда стоит использовать какую-либо метку на этом сайте.

Аннотация - это специальная форма синтаксических метаданных, которая может быть добавлена ​​в исходный код. Аннотации используются для анализа кода, компиляции или выполнения.

В общем они выполняют следующие функции:

  • Даёт информацию для компилятора / интерпретатора

  • Даёт информацию о различных инструментах для генерации другого кода, конфигураций и т.д.

  • Элемент списка может использоваться для получения данных через отражение ()

Аннотации помечают знакомые собачки @.

Java

В для разработки аннотаций взята система .

[1136]

Аннотация должна быть привязана к чему-либо. Это может быть поле, метод, класс. Воспользуйтесь Target.

Аннотация Retention определяет время жизни аннотации. В ней следует передать одно из значений перечислений RetentionPolicy, которое содержит следующие значения:

  • ИСТОЧНИК - Содержится в исходном коде
  • КЛАСС ] - Сохраняется в списке с расширением .class во время компиляции.
  • RUNTIME - Сохранение в доступе к расширению .class во время компиляции и выполнения

Также есть возможность добавления значений по умолчанию , которые содержат значение по умолчанию, это будет применимо, если ему не будет указано значение. Для таких членов существует ключевое слово .

Пример простой аннотации:

@Target({ElementType.METHOD, ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation{ String name(); int value() default -1; } 

Также различаются аннотации - маркеры , которые не содержат членов, которые появляются на что - то; одночленные аннотации для таких случаев можно применять короткую

Вот так могут выглядеть две вышеописанные разновидности аннотаций:

@interface MonomialAnnotation{ int val(); } @interface Marker{ } 

Чтоб получить мета информации аннотации, которые она должна быть RUNTIME , то, что будет аннотироватся, должно быть . Вот так можно получить метоинформацию:

@MyAnnotation(str="Пример аннотации", val = 34) public static void infoMeto(){ Main ob=new Main(); try{ Class<?> c = ob.getClass(); Method cMethod = c.getMethod("infoMeto"); MyAnnotation annotation=cMethod.getAnnotation(MyAnnotation.class); System.out.println("Аннотация infoMeto(): "+annotation.str()+" "+annotation.val()); } catch (NoSuchMethodException e) { System.out.println("Метод не найден"); } } 

Ссылки

Википедия

Хабр

] o7planning [+1146]