Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java-аннотации

Аннотации Java

В этом руководстве мы узнаем, что такое аннотации, разные аннотации Java и как их использовать с помощью примеров.

Аннотации Java — это метаданные (данные о данных) для исходного кода нашей программы.

Они предоставляют компилятору дополнительную информацию о программе, но не являются частью самой программы. Эти аннотации не влияют на выполнение скомпилированной программы.

Аннотации начинаются с @ . Его синтаксис:

@AnnotationName
<час>

Возьмем пример @Override аннотация.

@Override аннотация указывает, что метод, отмеченный этой аннотацией, переопределяет метод суперкласса с тем же именем метода, типом возвращаемого значения и списком параметров.

Не обязательно использовать @Override при переопределении метода. Однако, если мы его используем, компилятор выдает ошибку, если что-то не так (например, неправильный тип параметра) при переопределении метода.

Пример 1:Пример аннотации @Override

class Animal {
  public void displayInfo() {
    System.out.println("I am an animal.");
  }
}

class Dog extends Animal {
  @Override
  public void displayInfo() {
    System.out.println("I am a dog.");
  }
}

class Main {
  public static void main(String[] args) {
    Dog d1 = new Dog();
    d1.displayInfo();
  }
}

Вывод

I am a dog.

В этом примере метод displayInfo() присутствует как в суперклассе Animal и подкласс Собака . При вызове этого метода вместо метода суперкласса вызывается метод подкласса.

<час>

Форматы аннотаций

Аннотации также могут включать элементы (элементы/атрибуты/параметры).

1. Аннотации маркеров

Аннотации маркеров не содержат членов/элементов. Он используется только для обозначения объявления.

Его синтаксис:

@AnnotationName()

Поскольку эти аннотации не содержат элементов, круглые скобки можно исключить. Например,

@Override
<час>

2. Аннотации отдельных элементов

Аннотация с одним элементом содержит только один элемент.

Его синтаксис:

@AnnotationName(elementName = "elementValue")

Если есть только один элемент, принято называть этот элемент как value. .

@AnnotationName(value = "elementValue")

В этом случае можно исключить и имя элемента. Имя элемента будет value по умолчанию.

@AnnotationName("elementValue")
<час>

3. Аннотации нескольких элементов

Эти аннотации содержат несколько элементов, разделенных запятыми.

Его синтаксис:

@AnnotationName(element1 = "value1", element2 = "value2")
<час>

Размещение аннотации

Любое объявление можно пометить аннотацией, поместив ее над этим объявлением. Начиная с Java 8 аннотации также можно размещать перед типом.

1. Над объявлениями

Как упоминалось выше, аннотации Java можно размещать над объявлениями классов, методов, интерфейсов, полей и других элементов программы.

Пример 2:Пример аннотации @SuppressWarnings

import java.util.*;

class Main {
  @SuppressWarnings("unchecked")
  static void wordsList() {
    ArrayList wordList = new ArrayList<>();

// This causes an unchecked warning
    wordList.add("programiz"); 

    System.out.println("Word list => " + wordList);
  }

  public static void main(String args[]) {
    wordsList();
  }
}

Вывод

Word list => [programiz]

Если приведенная выше программа скомпилирована без использования @SuppressWarnings("unchecked") аннотацию, компилятор все равно скомпилирует программу, но выдаст предупреждения типа:

Main.java uses unchecked or unsafe operations.
Word list => [programiz]

Мы получаем предупреждение

Main.java uses unchecked or unsafe operations

из-за следующего утверждения.

ArrayList wordList = new ArrayList<>();

Это потому, что мы не определили универсальный тип списка массивов. Мы можем исправить это предупреждение, указав дженерики внутри угловых скобок <>. .

ArrayList<String> wordList = new ArrayList<>();
<час>

2. Введите аннотации

До Java 8 аннотации можно было применять только к объявлениям. Теперь можно использовать и аннотации типов. Это означает, что мы можем размещать аннотации везде, где используем тип.

Вызов конструктора

new @Readonly ArrayList<>()

Определения типов

@NonNull String str;

В этом объявлении указана ненулевая переменная str. типа String чтобы избежать NullPointerException .

@NonNull List<String> newList;

Это объявление определяет ненулевой список типа String. .

List<@NonNull String> newList;

Это объявление указывает список ненулевых значений типа String. .

Приведение типов

newStr = (@NonNull String) str;

расширяет и реализует пункт

class Warning extends @Localized Message

выбрасывает предложение

public String readMethod() throws @Localized IOException

Аннотации типов позволяют лучше анализировать код Java и обеспечивают еще более строгие проверки типов.

<час>

Типы аннотаций

1. Предопределенные аннотации

  1. @Deprecated
  2. @Override
  3. @SuppressWarnings
  4. @SafeVarargs
  5. @FunctionalInterface

2. Мета-аннотации

  1. @Retention
  2. @Documented
  3. @Target
  4. @Inherited
  5. @Repeatable

3. Пользовательские аннотации

Эти типы аннотаций подробно описаны в руководстве по типам аннотаций Java.

<час>

Использование аннотаций


java

  1. Операторы Java
  2. Java-комментарии
  3. Оператор Java if...else
  4. Java для каждого цикла
  5. Java-строки
  6. Java-интерфейс
  7. Анонимный класс Java
  8. Java-проба с ресурсами
  9. Утверждения Java
  10. Java вектор