javax.enterprise.inject
Экземпляр интерфейса <T>

Введите Параметры:
T - необходимый бобовый тип
Все Суперинтерфейсы:
java.lang. Повторяемый <T>, Провайдер <T>

public interface Instance<T>
расширяет java.lang. Повторяемый <T>, Провайдер <T>

Позволяет приложению динамически получать экземпляры бобов с указанной комбинацией необходимого типа и спецификаторов.

В определенных ситуациях инжекция не является самым удобным способом получить контекстную ссылку. Например, это не может использоваться когда:

В этих ситуациях может быть введен экземпляр Instance:

 @Inject Instance<PaymentProcessor> paymentProcessor;
 

Любая комбинация спецификаторов может быть определена в инжекционной точке:

 @Inject @PayBy(CHEQUE) Instance<PaymentProcessor> chequePaymentProcessor;
 

Или, @Any спецификатор может использоваться, позволяя приложение определить спецификаторы динамически:

 @Inject @Any Instance<PaymentProcessor> anyPaymentProcessor;
 

Наконец, @New спецификатор может использоваться, позволяя приложение получить a @New квалифицированный боб:

 @Inject @New(ChequePaymentProcessor.class) 
 Instance<PaymentProcessor> chequePaymentProcessor;
 

Для введенного Instance:

Наследованный Provider.get() метод возвращает контекстные ссылки для уникального боба, который соответствует необходимый тип и требуемые спецификаторы и имеет право на инжекцию в class, в который родительский Instance был введен, или бросает UnsatisfiedResolutionException или AmbiguousResolutionException.

PaymentProcessor pp = chequePaymentProcessor.get();

Наследованный Iterable.iterator() метод возвращает iterator по контекстным ссылкам для бобов, которые соответствуют необходимый тип и требуемые спецификаторы и имеют право на инжекцию в class, в который был введен родительский Instance.

for (PaymentProcessor pp: anyPaymentProcessor) pp.test();

Автор:
Гэвин Кинг
См. Также:
Provider.get(), Iterable.iterator(), AnnotationLiteral, TypeLiteral

Сводка метода
 boolean isAmbiguous()
          Определяет, есть ли больше чем один боб, который соответствует необходимый тип и спецификаторы и имеет право на инжекцию в class, в который был введен родительский Instance.
 boolean isUnsatisfied()
          Определяет, нет ли никакого боба, который соответствует необходимый тип и спецификаторы и имеет право на инжекцию в class, в который был введен родительский Instance.
 Instance<T> select(java.lang.annotation.Annotation... qualifiers)
          Получает дочерний Instance для данных дополнительных необходимых спецификаторов.
<U extends T>
Instance<U>
select(java.lang.Class<U> subtype, java.lang.annotation.Annotation... qualifiers)
          Получает дочерний Instance для данного требуемого типа и дополнительных необходимых спецификаторов.
<U extends T>
Instance<U>
select(TypeLiteral<U> subtype, java.lang.annotation.Annotation... qualifiers)
          Получает дочерний Instance для данного требуемого типа и дополнительных необходимых спецификаторов.
 
Методы, наследованные от интерфейса java.lang. Повторяемый
iterator
 
Методы, наследованные от интерфейса javax.inject. Провайдер
добраться
 

Деталь метода

выбрать

Instance<T> select(java.lang.annotation.Annotation... qualifiers)

Получает дочерний Instance для данных дополнительных необходимых спецификаторов.

Параметры:
qualifiers - дополнительные необходимые спецификаторы
Возвраты:
дочерний Instance
Броски:
IllegalArgumentException - если передано два экземпляра того же самого типа спецификатора, или экземпляр аннотации, которая не является типом спецификатора

выбрать

<U extends T> Экземпляр<U> select(java.lang.Class<U> subtype,
                                 java.lang.annotation.Annotation... qualifiers)

Получает дочерний Instance для данного требуемого типа и дополнительных необходимых спецификаторов.

Введите Параметры:
U - необходимый тип
Параметры:
subtype - a Class представление необходимого типа
qualifiers - дополнительные необходимые спецификаторы
Возвраты:
дочерний Instance
Броски:
IllegalArgumentException - если передано два экземпляра того же самого типа спецификатора, или экземпляр аннотации, которая не является типом спецификатора

выбрать

<U extends T> Экземпляр<U> select(TypeLiteral<U> subtype,
                                 java.lang.annotation.Annotation... qualifiers)

Получает дочерний Instance для данного требуемого типа и дополнительных необходимых спецификаторов.

Введите Параметры:
U - необходимый тип
Параметры:
subtype - a TypeLiteral представление необходимого типа
qualifiers - дополнительные необходимые спецификаторы
Возвраты:
дочерний Instance
Броски:
IllegalArgumentException - если передано два экземпляра того же самого типа спецификатора, или экземпляр аннотации, которая не является типом спецификатора

isUnsatisfied

boolean isUnsatisfied()

Определяет, нет ли никакого боба, который соответствует необходимый тип и спецификаторы и имеет право на инжекцию в class, в который был введен родительский Instance.

Возвраты:
true, если нет никакого боба, который соответствует необходимый тип и спецификаторы и имеет право на инжекцию в class, в который родительский Instance был введен, или false иначе.

isAmbiguous

boolean isAmbiguous()

Определяет, есть ли больше чем один боб, который соответствует необходимый тип и спецификаторы и имеет право на инжекцию в class, в который был введен родительский Instance.

Возвраты:
true, если есть больше чем один боб, который соответствует необходимый тип и спецификаторы и имеет право на инжекцию в class, в который родительский Instance был введен, или false иначе.


Представьте ошибку или функцию

Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается срокам действия лицензии.

Сгенерированный на 10-February-2011 12:41


Spec-Zone.ru - all specs in one place



free hit counter