аннотация
1. Что такое аннотация? (Аннотация или комментарии)
Аннотация, точный перевод должен быть - аннотация. Это полностью отличается от комментариев.
Аннотация - это функция, представленная JDK5.0 и более поздними версиями. Он находится на том же уровне, что и классы, интерфейсы и перечисления и могут стать типом Java.
Синтаксис начинается с @,
Комментарии - это некоторые запоминающие или быстрые описания, сделанные программистами классов исходного кода, методов, свойств и т. Д. (Например, для того, для чего используется этот метод), и для людей, которые можно увидеть.
Аннотация - это та часть, которую может понять компилятор Java и для компилятора.
Давайте приведем простой пример, чтобы увидеть использование и функцию аннотаций.
@Override-это обычная встроенная Java Annotation. Его функция состоит в том, чтобы проверить, являются ли методы, определенные в подклассе правильными при составлении кода.
аннотация упаковки; Общественное абстрактное классовое животное (public abstract void eat (); } аннотация пакета; Общедоступный класс CAT расширяет Animal {@Override public void eat (String Food) {}} Здесь, в подклассной кошке, метод EAT аннотируется как метод, который перезаписывает родительский класс, но имеет один параметр, чем метод родительского класса.
Если вы редактируете в Eclipse, будет подсказка Красного Креста. (Кодовая компиляция не будет передана).
Если вы удалите аннотацию @Override, нет проблем с компиляцией, но метод Eat in CAT является новым методом этого класса, не унаследованным от родительского класса.
2. Common Java встроенные аннотации
Включая @Override, какие еще общие встроенные аннотации Java?
1. @Deprecated
Аннотация не рекомендуется и может использоваться на методах и классах.
По сути, этот метод и класс заброшены и не рекомендуются по некоторым причинам, таким как обновление или производительность, но должны быть сохранены по совместимости или по другим причинам.
Так что поставьте на это эту аннотацию.
Есть много таких примеров в самой Java API. Если вы поместите эту аннотацию на метод, вы увидите, какой новый альтернативный метод.
При написании кода в Eclipse метод, который добавляет эту аннотацию, добавит забастовки как в объявление, так и вызов.
2.@переопределить
3.@Suppresswarnings
Игнорировать предупреждения.
Если в вашем коде есть некоторые предупреждения в трансформации или других частях, но вы хотите игнорировать эти предупреждения, вы можете использовать это аннотацию.
1) Предупреждение, когда устаревает, использует класс или метод, который не предпочитается
2) Неконтролируемое предупреждение при выполнении неконтролируемого преобразования
3) Предупреждения о выпуске появляются, когда операция разрыва не добавляется после использования случая, в результате чего программа продолжает выполнять другие операторы.
4) ПРЕДУПРЕЖДЕНИЕ ПАТИ При установке неправильной пути к классу или исходному файлу
5) Последовательное предупреждение, когда определение SerialVersionUID отсутствует в сериализуемом классе
6) Fianbly Warning, если какой -либо пункт, наконец, не может быть завершен нормально
7) Все предупреждения обо всех вышеуказанных ситуациях
3. Пользовательские аннотации
В дополнение к встроенным аннотациям, предоставленным самой Java, Java также предоставляет функцию настройки пользовательских аннотаций.
Способ определения аннотаций - использовать аннотации для определения аннотаций. Аннотации, используемые для определения аннотаций, называются мета -аннотациями.
Основные мета -аннотации следующие: @Target; @Удержание; @Documented; @УВЕДОМЛЕН
1. @Target показывает, где используется аннотация, и может использоваться на классах, методах или атрибутах. Возможные параметры ElemenetType включают:
Elemenettype.constructor Constructor Declaration
Декларация домена ElemenetType.field (включая экземпляры Enum)
Elemenettype.local_variable локальная переменная объявление
Elemenettype.method Метод объявление
Elemenettype.package Package
Elemenettype.parameter Declaration
Elemenettype.type Class, интерфейс (включая тип аннотации) или объявление Enum
2. @retention указывает на каком уровне, чтобы сохранить информацию о аннотации. Необязательные параметры удержанияполитика включают в себя:
Arsentpolicy.source Annotation будет отброшена компилятором
AntreationPolicy.class Annotation доступна в файле класса, но будет отброшена виртуальной машиной.
Harementpolicy.runtime VM также сохранит комментарии во время выполнения, поэтому информация о аннотации может быть прочитана с помощью механизма отражения.
3.
4. @Inshorted
Пусть подклассы наследуют аннотации в родительском классе. См. Некоторые примеры простых определений:
аннотация упаковки; импортировать java.lang.annotation.documented; импортировать java.lang.annotation.elementtype; импортировать java.lang.annotation.inherited; Импорт java.lang.annotation.retention; импортировать java.lang.annotation.retentionpolicy; импортировать java.lang.annotation.target; @Target (elementType.method) public @Interface myannotation {string value (); } @Retention (UnfententPolicy.source) @Interface myannotation1 {} @retention (streationpolicy.class) @Interface myannotation2 {} @retention (streationPolicy.runtime) @Interface myannotation3 {} @document @Interface myannation4 {} @Inherted @Interface @Interface54. Используйте примеры:
аннотация упаковки; импортировать java.lang.annotation.annotation; @Myannotation3 public class testannotation {public static void main (string [] args) {// todo с генерируемым методом аннотации Annotation Annotation = testannotation.class.getannotation (myannotation3.class); System.out.println (Annotation.toString ()); }} Распечатайте результат: @annotation.myannotation3 ()
Если Myannotation1 и Myannotation2 заменяются в приведенном выше примере, значение полученного аннотации пусто, что является разницей между удержаниемполитиками.
V. Роль аннотации
На этом этапе мы можем подвести итог роли аннотации.
Основы могут быть примерно разделены на три категории:
1. Напишите документ
2. Анализ кода
3. Компиляция Проверка, однако, каркасы с открытым исходным кодом дают ему больше функций, таких как:
Спезок, конфигурация аннотации,
@Column ("aa") частная строка xx; Это похоже на конфигурацию XML, которая упрощает конфигурацию в программе и перемещает часть метаданных из файла XML в сам код и управляет и поддерживает ее в одном месте.
Как это реализовано внутри? - Механизм отражения Java, похожий на приведенный выше пример.
Комментарии
Хотя аннотации и комментарии отличаются только одно слово, использование сильно отличается.
То же самое предложение верно, аннотации предназначены для компилятора, и аннотации для людей, чтобы увидеть.
На основании этого, для метода:
1. Просто опишите функцию этого метода четко, вход и вывод. Вы можете добавить больше информации, такой как авторы и версии.
2. Просто сделайте эти две вещи с красивой композицией для комментариев. Например:
/*********************************************************** • ***********************************************
Похоже, это хорошая нота ^^.
Но для языка Java комментарии дают больше функций. То есть вы можете использовать функцию Javadoc для экспорта комментариев в коде в файл HTML.
Если ваш код является кодом с высокой общей, этот документ является справочным документом API, аналогичным Java API.
Следовательно, чтобы создать такой документ, вы должны следовать некоторым спецификациям аннотаций, определенных Java, для создания стандартизированного документа.
1. Стандартные комментарии по методам класса Java
Давайте начнем с комментариев к методу класса.
/*** Прочитайте линию текста. Считается, что линия прекращается любым * линейным подачей ('/n'), возвратом кареты ('/r') или возвратом каретки * сразу же следовала линейной корпусом. * * @param IgnorFelf1, если истина, следующая '/n' будет пропущено <pre Code_snippet_id = "74911" snippet_file_name = "blog_20131120_2_8365599" name = "code"> * @param Ignorelf2, если true, следующая, не будет содержит линейку @Ret at at at at at at at at at at at at at at at at at at at at at at at at at at at at le line at at at at at at at at at at at at string lightr Любые символы-линейки или нулевые, если был достигнут конец потока * * * @see java.io.lineNumberReader#readline () * * @Exception ioException, если возникает ошибка ввода/вывода *// (Не обращайте внимания на значение вышеперечисленных комментариев, просто сосредоточьтесь на стиле его определения)
1. Сначала посмотрите на верхнюю часть «Прочтите линию текста. Линия ..». Этот абзац является описанием этого метода.
Часть перед первым периодом, которая «прочитайте линию текста». появится в "Сводка методов"
2. @param определяет входные параметры метода, который (несколько можно добавить) появляется в «Подробности метода». (Параметр и описание параметра разделены пространствами и преобразуются в - в сгенерированном документе)
3. @return Описание возвращаемого значения
4. @see Справочный описание
5. Описание @Exception, брошенное исключением, красиво. Различные типы тегов могут отображаться в одной строке, таких как @param и @return, прямо опустошенные одной строки.
2. Стандартные комментарии Java Class Class
Формат классовых аннотаций и аннотаций методов в основном одинаково. В чем разница:
1. Размещение отличается. Классовые аннотации размещаются выше определения класса, а методические аннотации размещаются над определением метода.
2. Сравнение аннотаций класса использует теги, такие как @version @author @since.
Посмотрите на шаблон
/** Будет буферизовать вход из указанного файла. Без буферизации каждый * вызов read () или readline () может привести к чтению байтов из файла *, преобразован в символы, а затем возвращается, что может быть очень * неотъемлемой частью. * * Описание Тестирования * * <p> Программы, которые используют DataInputStream для текстового ввода, могут быть локализованы, заменив каждый DataInputStream соответствующим буферистом. * * @see FileReader * @See InputStreamReader * * @version 0.1, 20.11.13 * @author oscar999 * @since jdk1.5 */
Эффекты, отображаемые в DOC:
Точно так же первое предложение описания появляется в «Классном».
Детали класса отображаются следующим образом:
Стоит отметить, что использование <p> в описании. Если <p> не добавлен, независимо от того, есть ли новая строка в коде Java, сгенерированный DOC не будет новым. Если <p> добавлена, в DOC появляется новая линия.
3. Дополнение
Чтобы добавить, метод генерирования Javadoc:
1. Именованный метод линии: параметры Javadoc +
2. Используйте IDE Eclipse для экспорта, если в Eclipse IDE, щелкните правой кнопкой мыши исходного файла или проекта, выберите Export --->
Java -> Javadoc может быть сгенерирован.