2012-05-17 1 views
3

В моем веб-проекта с использованием CDI, Netbeans 7.1.2 предупреждает о моем пользовательском классификаторомCDI @Target предупреждение о Netbeans

@Qualifier 
@Retention(RetentionPolicy.RUNTIME) 
@Target({FIELD, TYPE, METHOD}) 
public @interface MyQualifier{ 

} 

с сообщением:

The CDI Annotation is declared as Qualifier but it has wrong target values. Correct target values are '{METHOD, FIELD, PARAMETER, TYPE'} or '{FIELD, PARAMETER'}. 

Да это только предупреждение, но еще Мне интересно значение этого сообщения. Не удалось найти хорошую ссылку на @Target в сети. Поэтому кто-то здесь может дать некоторое объяснение о Целевом и предупреждающем сообщении. Благодарю.

ответ

1

Похоже, что в соответствии с разделом 2.3.2 спецификации CDI они оба неправильны. Квалификатор должен быть METHOD, FIELD, PARAMETER, TYPE.

+0

Я должен был сначала прочитать спецификацию. По крайней мере, "{МЕТОД, ПОЛЕ, ПАРАМЕТР, ТИП}" верен, не так ли? Но информация о «{FIELD, PARAMETER}» в спецификации отсутствует. –

+0

Исправить. Не уверен, где netbeans получает эту ценность. Может быть, интерпретировать это как классификатор только для наблюдателя? Но такого нет. – LightGuard