хороший день.Каковы значения(), которые я видел в различных квалификаторах CDI в java?
Я видел различные ссылки на значения() внутри определений @qualifier. Я понимаю, что @Qualifier является системой тегов, но вы определяете их как интерфейс.
Интерфейс может разрешать перечисления, но я не понимаю слово «значения()», которое я видел в двух несвязанных примерах, перечисленных ниже.
Не могли бы вы объяснить мне значение слова()?
@Qualifier
@Retention(RUNTIME)
@Target({FIELD, TYPE, METHOD})
public @interface NumberOfDigits {
Digits value();
}
public enum Digits {
TWO,
EIGHT,
TEN,
THIRTEEN
}
package com.byteslounge.bean;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.inject.Qualifier;
@Qualifier
@Retention(RUNTIME)
@Target({FIELD, TYPE, METHOD})
public @interface MessageTransport {
MessageTransportType value();
}
Это все хорошо, но не отвечает на вопрос. «Значения» в аннотации (которая в байтовом коде фактически является специальным типом интерфейса) является именем по умолчанию для члена аннотации. – LightGuard
эй большое спасибо за эту информацию обоим вам. Я должен был понять, что @interface и Interface - это как ключевые слова, так и аннотация. Вау. Легкая ошибка сделать там с одинаковыми именами. И спасибо за объяснение ценностей. – user798719