В Java аннотация вводится в Java 5 и используется для описания мета -информации кода Java. Обычно аннотации не будут напрямую влиять на выполнение кода, хотя некоторые аннотации могут использоваться для повлиять на выполнение кода.
Что можно сделать с аннотациями
Аннотации на Java обычно играют следующие роли
в
Основы аннотации
Простая Java Annotation похожа на @Entity. Где @ означает сказать компилятору, что это аннотация. Сущность - это название аннотации. Обычно в файле метод написания выглядит следующим образом
public @Interface Entity {
}
Элементы аннотации
Аннотации Java могут использовать элементы для установки некоторых значений, а элементы в аннотациях аналогичны атрибутам или параметрам. Пример кода для определения аннотации, содержащих элементы
public @Interface Entity {
String TableName ();
}
Пример кода с использованием аннотации, содержащих элементы
@Entity (tableName = "транспортные средства")
Название элемента вышеуказанной аннотации - это имя таблицы, а набор значений - это транспортные средства. Аннотации без элементов не требуют скобок.
Если аннотация содержит несколько элементов, метод использования следующим образом
@Entity (tableName = "транспортные средства", primaryKey = "id")
Если у аннотации есть только один элемент, мы обычно пишем это так
@Insertnew (value = "yes")
Но в этом случае, если и только тогда, когда имя элемента является значением, мы также можем сократить его, то есть нет необходимости заполнять значение имени элемента, эффект выглядит следующим образом
@Insertnew ("Да")
Использование аннотаций
Аннотации могут использоваться для изменения этих элементов в коде
Полный пример использования заключается в следующем
@EntityPublic Class Apar {@persistent защищенная строка watchlename = null; @Getter public String getVehiclename () {return this.vehiclename; } public void setVehiclEname (@Optional ehairlename) {this.VehiClename = ewericlename; } public List addVehiclenAmetolist (list names) {@Optional List LocalNames = names; if (localnames == null) {localnames = new ArrayList (); } localnames.add (getVehiClename ()); вернуть локальные имена; }}Встроенные аннотации Java
В Java есть три встроенные аннотации, которые используются для предоставления инструкций для компилятора. Они есть
@Deprecated
Может использоваться для отметки классов, методов и свойств.
Если вышеупомянутые три элемента больше не используются, используйте аннотацию @Deprecated. Если код использует класс, метод или свойство аннотации @Deprecated, компилятор будет предупреждать вас.
@Deprecated очень прост в использовании, следующим образом: аннотация устаревшего класса.
@Deprecatedpublic class mycomponent {}Когда мы используем аннотацию @deprecated, рекомендуется использовать соответствующий символ @deprecated javadoc в сочетании с ним и объяснить, почему этот класс, метод или свойство устарели и какова альтернатива.
@Deprecated/** @deprecated Этот класс полон ошибок. Вместо этого используйте MyNewComponent.*/Public Class MyComponent {}@Override
Аннотация @Override используется для изменения метода переписывания родительского класса. Если метод, который не переопределяет родительский класс, использует эту аннотацию, компилятор будет вызвать ошибку.
Фактически, @Overide не требуется, чтобы переопределять методы родительского класса или интерфейса в подкласке. Тем не менее, все еще рекомендуется использовать эту аннотацию. В некоторых случаях, предполагая, что вы изменяете имя метода родительского класса, метод подкласса, который был переписан ранее, больше не будет переписать. Без @Overide вы не заметите метод этого подкласса. С этой модификацией аннотации компилятор предложит вам эту информацию.
Примеры использования аннотации переопределения
открытый класс mysuperclass {public void dothething () {System.out.println («Делай вещь»); }} открытый класс mysubclass расширяет mysuperclass {@override public void dothething () {System.out.println ("Делай это по -другому"); }}@Suppresswarnings
@Suppresswarnings используется для подавления компилятора от генерации предупреждающих сообщений.
Элементы, которые могут быть изменены, - это классы, методы, параметры метода, атрибуты и локальные переменные
Сценарий использования: когда метод вызывает устаревший метод или выполняет небезопасное преобразование типа, компилятор будет генерировать предупреждение. Мы можем добавить к этому методу
@Suppresswarnings аннотация для подавления предупреждений генерации компилятора.
Примечание. Используйте аннотацию @suppresswarnings и используйте принцип близости. Например, если метод имеет предупреждение, мы стараемся использовать @SuppressWarnings для аннотирования этого метода, а не аннотировать класс, где находится метод. Хотя оба могут подавить компилятор от генерации предупреждений, чем меньше область применения, тем лучше, потому что область масштаба больше, что не способствует обнаружению предупреждающей информации от других методов в этом классе.
Пример использования
@Suppresswarningspublic void methodwithwarning () {}Создайте свои собственные аннотации
В Java мы можем создавать наши собственные аннотации, аннотации и классы, а файлы интерфейса определены в нашем собственном файле. следующее
@Interface myannotation {string value (); String name (); int age (); String [] newNames ();}Приведенный выше код определяет аннотацию под названием Myannotation, которая имеет 4 элемента. Опять же, ключевое слово @Interface используется, чтобы сообщить компилятору Java, что это аннотация.
Если вы посмотрите внимательно, вы обнаружите, что определение элементов аннотации очень похоже на метод интерфейса. Эти элементы имеют типы и имена. Эти типы могут быть
Ниже приведены приложения пользовательские аннотации
@Myannotation (value = "123", name = "jakob", age = 37, newnames = {"jenkov", "peterson"}) public class myclass {}Обратите внимание, что нам нужно установить значения для всех элементов аннотации, и никто не может отсутствовать.
Элемент аннотации значения по умолчанию
Для элементов в аннотациях мы можем установить для них значения по умолчанию, используя метод
@Interface myannotation {string value () default ""; String name (); int age (); String [] newNames ();}В приведенном выше коде мы устанавливаем значение по умолчанию элемента значения на пустую строку. Когда мы его используем, мы не можем установить значение, то есть пусть значение использует значение по умолчанию пустой строки. Используйте пример кода
@Myannotation (name = "jakob", age = 37, newnames = {"jenkov", "peterson"}) public class myclass {}@Удержание
@Retention - это аннотация, используемая для изменения аннотации. Используя эту аннотацию, мы можем это сделать.
Управляйте, записываются ли аннотации в файл класса, чтобы контролировать, видны ли аннотации в файле класса во время выполнения.
Контроль прост, просто используйте одну из следующих трех стратегий.
Harementpolicy.source указывает, что аннотация существует только в исходном коде, не существует. Класс -файлы и не может быть видна во время выполнения. Общие аннотации - @Override, @SuppressWarnings.
Hestententpolicy.class Это политика удержания аннотаций по умолчанию. В соответствии с этой стратегией, аннотации будут существовать с файлом .class, но не могут быть доступны во время выполнения. Обычно эта стратегия аннотации используется для работы на некотором уровне байт -кодов.
Hestentionpolicy.runtime можно получить во время выполнения в соответствии с настоящей Политикой. Часто мы делаем что -то в сочетании с размышлением.
Пример использования @retention
Импорт java.lang.annotation.retention; import java.lang.annotation.retentionpolicy; @retention (armentpolicy.runtime) @Interface Myannotation {String Value () по умолчанию ";}@Цель
Используя аннотацию @Target, мы можем установить, какие элементы Java могут быть изменены с помощью пользовательских аннотаций. Простой пример
Импорт java.lang.annotation.elementtype; import java.lang.annotation.target; @Target ({elementType.method}) public @Interface myannotation {string value ();}Приведенный выше код показывает, что аннотация Myannotation может только изменять метод.
@Target может выбрать значения параметров следующим образом
@УВЕДОМЛЕН
Если вы хотите, чтобы класс и его подкласс содержали аннотацию, вы можете использовать @Inhered для изменения этой аннотации.
java.lang.annotation.inherited@inheritedpublic @interface myannotation {} 12@myannotationpublic class mysuperclass {...} 1public class mysubclass расширяет mysuperclass {...}Общий смысл вышеуказанного кода
1. Используйте @inhered, чтобы изменить аннотацию
2. Аннотация MysuperClass с использованием myannotation
3. Внедрить класс MySubClass наследует от MySuperClass
Через вышеуказанные шаги у Mysubclass также есть аннотация Myannotation.
Это некоторые основные концепции об аннотациях на Java.
Вышеуказанное - сортировка аннотаций на Java. Мы будем продолжать добавлять соответствующую информацию в будущем. Спасибо за поддержку этого сайта!