Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Haulmont-презентации Java / Haulmont. java_se_8.ppt
Скачиваний:
42
Добавлен:
16.03.2015
Размер:
1.04 Mб
Скачать

Аннотации-маркеры

61Аннотация-маркер — это специальный

тип аннотации, не содержащий методов-членов

Единственная цель такой аннотации — пометить объявление

В этом случае достаточно присутствия аннотации

Лучше всего для проверки наличия аннотации-маркера использовать метод isAnnotationPresent(), который определен в интерфейсе AnnotatedElement

@interface MyMarker {}

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Одночленные аннотации

62Одночленная аннотация — это еще один

специальный тип аннотации, содержащий

единственный метод-член

Она применяется так же, как и обычная аннотация, за исключением того, что для этого типа аннотации допускается краткая условная форма задания значения для метода-члена

Если есть только один метод-член, вы можете просто указать значение для этого метода- члена, когда создается аннотация; при этом не нужно указывать имя метода-члена

Но для того чтобы воспользоваться краткой формой, следует для метода-члена

использовать имя value

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Одночленные аннотации

63

@interface MySingle {

 

 

int value(); //Имя только такое!

}

@MySingle(100)

Вы можете применять синтаксическую запись одночленной аннотации, когда создаете аннотацию, у которой есть и другие методы- члены, но для них должны быть заданы значения по умолчанию

@interface SomeAnno { int valuе();

int xyz() default 0;

}

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Одночленные аннотации

64• Если Вы хотите использовать значение по умолчанию для метода xyz(), можно создать

аннотацию типа @SomeAnno, применяя синтаксическую запись для одночленной аннотации с указанием значения для метода value()

@SomeAnno(88)

В этом случае в метод xyz() передается нулевое значение по умолчанию, а метод value() получает значение 88

Конечно, передача в метод xyz() значения, отличного от значения по умолчанию, потребует явного задания имен обоих методов-членов

@SomeAnno (value = 88, xyz = 99)

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Встроенные аннотации

65 @Retention

Применяется к аннотациям, позволяет задать правило сохранения

@Documented

Применяется к аннотациям, указывает, что она должна быть документирована

@Target

Применяется к аннотациям, позволяет указать типы объектов, к которым данная аннотация может применяться

@Inherited

Применяется к аннотациям классов, указывает, что данная аннотация будет унаследована

потомками класса

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Встроенные аннотации

66 @Override

Применяется к методам, указывает, что метод обязан переопределять метод родительского класса

@Deprecated

Указывает на то, что объявление является устаревшим или вышедшим из употребления

@SupressWarnings

Указывает на то, что указанные виды предупреждений компилятора не будут показываться. Эти предупреждения задаются с помощью имен в строковой форме

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

 

 

 

Особенности аннотаций

67

Аннотация не может наследовать другую аннотацию

 

 

Все методы, объявляемые в аннотации, не должны

 

 

иметь параметров

 

Все методы, объявляемые в аннотации должны

 

 

возвращать один из перечисленных далее типов:

 

 

 

примитивный тип (int, double)

 

 

 

объект типа String

 

 

 

объект типа Class

 

 

 

перечислимый тип (enum)

 

 

 

другой тип аннотации

 

 

 

массив элементов одного из вышеперечисленных

 

 

 

типов

 

В аннотациях нельзя задавать ключевое слово throws

 

Аннотации не могут быть настраиваемыми, т.е. они не

 

 

могут принимать параметры типа

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Литература

68• Шилдт Г. Java 2, v5.0 (Tiger). Новые возможности: Пер. с англ. – СПб.: БХВ-

Петербург, 2005.

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Соседние файлы в папке Haulmont-презентации Java