Вступ Анотації на Java

Анотації були введені або стали доступними у версії 1.5 для Java Development Kit (JDK). Анотації на Java надають більше інформації про дані, наявні в структурі коду, тобто це дані про дані, також відомі як метадані.

Що таке анотації на Java?

Анотації допомагають у визначенні метаданих у коді стандартизованим чином. Також примітки допомагають у наданні інструкцій компілятору Java, який слід виконувати під час компіляції цього коду Java.

Під час використання приміток ми використовуємо знак "@", а потім ім'я вашої анотації, щоб компілятор розглядав це як примітку. Важливо зазначити, що примітки можна додавати до

  • Декларація класу
  • Декларація змінної члена
  • Декларація конструктора
  • Декларація методу
  • Декларація параметра
  • Декларація локальної змінної.

Важливі моменти, які слід пам’ятати, - це те, що всі анотації поширюють інтерфейс java.lang.annotation.Anonotation. Крім того, анотації не можуть включати будь-яке застереження про розширення.

Вбудовані анотації на Java

У Java є вбудовані анотації, такі як @Override, @Deprecated, @SuppressWarnings, які призначені для певної мети та використовуються в одній із вищевказаних ситуацій, наприклад, лише для класу або лише для методу, тощо.

Приклад №1 -Заміна

class Dad (
public void say() (
System.out.println("Do your homework");
)
)
public class Child extends Dad (
@Override
public void say()(
System.out.println("I wanna play");
)
public static void main(String args())(
Dad daddy = new Child();
daddy.say();
)
)

Вихід

Приклад №2 - Встановлено

public class Outdated
(
@Deprecated
public void oldShow()
(
System.out.println("This Method is deprecated"); )
public static void main(String args())
(
Outdated od = new Outdated ();
od.oldShow();
)
)

Вихід

Мета анотації

Існує п'ять типів мета-приміток:

  1. Документовано - Він повідомляє, що член або змінна або клас, який використовує цю примітку, повинен бути задокументований Javadoc або будь-яким іншим доступним інструментом.
  2. Ціль - використовується для вказівки, для якого типу використовується анотація. В основному використовується разом із вашими користувацькими анотаціями.
  3. Спадкове - Позначає анотацію, яка має бути успадкована підкласу.
  4. Збереження - вказує, як довго зберігати анотації з анотованим типом. Він бере аргумент політики збереження, можливі значення якого: ДЖЕРЕЛ, КЛАС та RUNTIME.
  5. Повторюваність - це інформує, що типи анотацій, декларація яких вона коментує, можуть повторюватися.

Приклад - Документація та збереження

import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface RSample (
String rentent();
)
@Documented
@interface DSample (
String doc();
)
public class MetaAnnotate (
public static void main(String arg())
(
new MetaAnnotate().rentent();
new MetaAnnotate().doc();
)
@RSample (rentent="Meta Info R")
public void rentent() (
System.out.println("Retention Policy Applied");
)
@DSample(doc="Meta Info D")
public void doc() (
System.out.println("Code Documented with the value");
)
)

Вихід

Пояснення

RetentionPolicy.RUNTIME - Це значення визначає, що значення анотації має бути доступним під час виконання, для перевірки через відображення Java.

Запустіть команду Javadoc, щоб переглянути документацію вашого коду.

Види анотацій

Існує три категорії приміток і є наступні:

1. Анотації з маркерами - ці типи анотацій використовуються як декларація для сповіщення розробника про те, що стосується наведеної нижче функції або класу, тобто вона ділиться додатковою інформацією про функцію або клас, наприклад, перевіряє яку функцію інша функція або функція застаріла тощо. @ Oververide, @Deprecated вважаються анотаціями до маркерів.

Приклад: DemoAnnotation ()

2. Анотації з однозначним значенням. Цей вид анотацій має значення, щоб вказати це значення для того члена, для якого анотація розміщується перед і, отже, не потрібно вказувати ім'я цього члена.

Приклад: DemoAnnotation ("custId123")

3. Повні анотації - Цей вид анотацій приймає кілька значень, пар, членів.

Приклад: DemoAnnotation (категорія = "Іграшки", значення = 1500)

Користувальницькі

Спеціальні анотації створюються користувальницьким інтерфейсом, а потім ім'ям анотацій, як ми побачимо на прикладі нижче.

Файл 1: Визначено спеціальну анотацію

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target((ElementType.TYPE, ElementType.METHOD))
@Retention(RetentionPolicy.RUNTIME)
@interface Magicians
(
String Wizard() default "Reynolds";
String House() default "Green";
)
@Magicians
public class Magician
(
@Magicians(Wizard = "Harry Potter", House = "Red")
public String getString() ( return null; )
)

Файл 2: Основний клас, який викликає спеціальний клас анотацій

import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
public class MyCustomAnnotation
(
public static void main(String() args) throws NoSuchMethodException, SecurityException
(
new Magician();
Class magic = Magician.class;
readAnnotationOn(magic);
Method method = magic.getMethod("getString", new Class()());
readAnnotationOn(method);
)
static void readAnnotationOn(AnnotatedElement element)
(
try
(
System.out.println("\n Find annotations on " + element.getClass().getName());
Annotation() annotations = element.getAnnotations();
for (Annotation annotation : annotations)
(
if (annotation instanceof Magicians)
(
Magicians mData = (Magicians) annotation;
System.out.println("Wizard Name :" + mData.Wizard());
System.out.println("Wizard House Color :" + mData.House());
)
)
) catch (Exception e)
(
e.printStackTrace();
)
)
)

Вихід

Висновок

У цій статті ми дізналися про те, що таке анотації на Java та їх типи на прикладах, а також ми побачили приклади вбудованих анотацій, які надає java, та зашифрували наші власні анотації.

Ми дізналися, що анотації корисні для стандартизації коду, а також допомагають краще зрозуміти код та його структуру.

Рекомендовані статті

Це посібник з анотацій Java. Тут ми обговорюємо як вбудовані анотації на Java за допомогою наведених прикладів та результатів. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Змінні на Java
  2. Шаблони на Java
  3. Швидкий сортування в Java
  4. Кращі компілятори Java
  5. instanceOf в Java з прикладом