Анотації в Java. Введення

травня
19
2012
Мітки: annotation java

Зміст

В Java є корисний спосіб додавання мета-інформації до класу, використовуючи анотації. У цій статті піде мова про створення власної анотації.

Головним завданням анотацій є статичне розширення класів (саме класів, а не об'єктів), шляхом додавання метаданих в клас, без зміни його методів і властивостей. Як правило, анотації є природним способом взаємодії з деякими з бібліотек або фреймворків (наприклад, Hibernate або Spring). Тобто, додаючи в свої класи анотації, які визначені в подібних бібліотеках, Ви, тим самим, вказуєте бібліотеці використовувати саме ті класи, методи або властивості, до яких додано анотації. При цьому, Ваш код не піддається ніяким змінам.

Основні завдання анотації:

Відразу перейдемо до практики - створимо анотацію Mammal (ссавець). Це робиться дуже просто:


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();
}

Єдина різниця між інтерфейсом і анотацією - це символ @ перед ключовим словом interface. Анотація може містити властивості (у прикладі властивостями є sound і color) або не містити їх.

Кілька обмежень, що накладаються на анотації:

Анотації можуть використовуватися з наступними елементами програми:

Увага! Анотації з'явилися в мові Java з появою версії 1.5. У версіях нижче 1.5 немає можливості використовувати анотації.

Також методи анотацій можуть мати значення за замовчуванням, які можна задати, використовуючи ключове слово default:


public @interface Mammal {
	String sound();

	int color() default 0xffffff;;
}

А наступним кодом додаємо в клас Giraffe анотацію Mammal:


package com.seostella.annotation.domain;

import com.seostella.annotation.def.Mammal;

@Mammal(color = 0xFFA844, sound = "uuuu")
public class Giraffe {
}

У наступних частинах статті детально розглянемо створення анотацій.

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

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

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