Анотації в Java. @Target

травня
20
2012
Мітки: @target annotation java

Зміст

Анотацією @Target вказується, який елемент програми буде використовуватися анотацією. Так, в прикладі ця анотація має тип ElementType.TYPE, що означає що вона може бути оголошена перед класом, інтерфейсом або enum. Оголошення @Target в будь-яких інших місцях програми буде сприйняте компілятором як помилка.


package com.seostella.annotation.def;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Mammal {
	String sound();

	int color();
}

Інші можливі типи анотації @Target:

Також є можливість задати відразу кілька типів анотації. Наприклад:


@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})

Нижче приклади для кожного типу анотації:

PACKAGE - призначенням є цілий пакет (package):


@Annotation
package org.company.package;

TYPE - клас, інтерфейс, enum або інша анотація:


@Annotation
public class MyClass {}

METHOD - метод класу, але не конструктор (для конструкторів є окремий тип CONSTRUCTOR):


@Annotation
public void method() {}

PARAMETER - параметр методу:


public void method(@Annotation String param) {..}

CONSTRUCTOR - конструктор:


public class MyClass {
    @Annotation
    public MyClass() {..}
}

FIELD - поля-властивості класу:


@Annotation
private String classField;

LOCAL_VARIABLE - локальна змінна (зверніть увагу, що анотація не може бути прочитана під час виконання програми, тобто, даний тип анотації може використовуватися тільки на рівні компіляції як, наприклад, анотація @SuppressWarnings):


public void method() {
    @Annotation int a = 0;
}

ANNOTATION_TYPE - інша анотація:


@Annotation
public @interface AnotherAnnotation {..}

У наступній статті буде розглянута анотація @Retention.

< Анотації в Java. Введення Анотації в Java. @Retention >

Напишіть перше повідомлення!

Ви повинні увійти під своїм аккаунтом щоб залишати коментарі