T - 必要な Bean 型 public interface Instance<T> extends IterableSE<T>, Provider<T>
アプリケーションが、必要な型と修飾子の指定された組み合わせで Bean のインスタンスを動的に取得できるようにします。
特定の状況では、インジェクションはコンテキスト参照を取得するための最も便利な方法ではありません。例: 次の場合は使用できません。
これらの状況では、Instance のインスタンスが注入される可能性があります。
@Inject Instance<PaymentProcessor> paymentProcessor;
修飾子の任意の組み合わせをインジェクションポイントで指定できます。
@Inject @PayBy(CHEQUE) Instance<PaymentProcessor> chequePaymentProcessor;
または、@Any 修飾子を使用して、アプリケーションで修飾子を動的に指定できます。
@Inject @Any Instance<PaymentProcessor> anyPaymentProcessor;
最後に、@New 修飾子を使用して、アプリケーションが @New 修飾 Bean を取得できるようにします。
@Inject @New(ChequePaymentProcessor.class) Instance<PaymentProcessor> chequePaymentProcessor;
注入された Instance の場合:
継承された Provider.get() メソッドは、必要な型と必要な修飾子に一致し、親 Instance が注入されたクラスへの注入に適格であるか、UnsatisfiedResolutionException または AmbiguousResolutionException をスローする一意の Bean のコンテキスト参照を返します。
PaymentProcessor pp = chequePaymentProcessor.get();
継承された Iterable.iterator()SE メソッドは、必要な型と必要な修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean のコンテキスト参照に対するイテレーターを返します。
for (PaymentProcessor pp : anyPaymentProcessor)
pp.test();
Provider.get(), Iterable.iterator()SE, AnnotationLiteral, TypeLiteral| 修飾子と型 | メソッドと説明 |
|---|---|
void | destroy(T instance) 呼び出されると、Bean のスコープ型のアクティブコンテキストオブジェクトが Bean インスタンスの破棄をサポートしている場合、コンテナーはインスタンスを破棄します。 |
boolean | isAmbiguous() 必要な型と修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean が複数あるかどうかを判別します。 |
default boolean | isResolvable() 必要な型と修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean が 1 つだけあるかどうかを判別します。 |
boolean | isUnsatisfied() 必要な型と修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean がないかどうかを判別します。 |
Instance<T> | select(AnnotationSE... qualifiers) 指定された追加の必須修飾子の子 Instance を取得します。 |
<U extends T> | select(ClassSE<U> subtype, AnnotationSE... qualifiers) 指定された必須型および追加の必須修飾子の子 Instance を取得します。 |
<U extends T> | select(TypeLiteral<U> subtype, AnnotationSE... qualifiers) 指定された必須型および追加の必須修飾子の子 Instance を取得します。 |
default StreamSE<T> | stream() 呼び出されると、このインスタンスで使用可能な Bean のストリームを返します。 |
forEachSE, iteratorSE, spliteratorSEInstance<T> select(AnnotationSE... qualifiers)
指定された追加の必須修飾子の子 Instance を取得します。
qualifiers - 追加で必要な修飾子 InstanceIllegalArgumentExceptionSE - 同じ非反復修飾子型の 2 つのインスタンス、または修飾子型ではないアノテーションのインスタンスが渡された場合 IllegalStateExceptionSE - コンテナーがすでにシャットダウンされている場合 <U extends T> Instance<U> select(ClassSE<U> subtype, AnnotationSE... qualifiers)
指定された必須型および追加の必須修飾子の子 Instance を取得します。
U - 必要な型 subtype - 必要な型を表す ClassSEqualifiers - 追加で必要な修飾子 InstanceIllegalArgumentExceptionSE - 同じ非反復修飾子型の 2 つのインスタンス、または修飾子型ではないアノテーションのインスタンスが渡された場合 IllegalStateExceptionSE - コンテナーがすでにシャットダウンされている場合 <U extends T> Instance<U> select(TypeLiteral<U> subtype, AnnotationSE... qualifiers)
指定された必須型および追加の必須修飾子の子 Instance を取得します。
U - 必要な型 subtype - 必要な型を表す TypeLiteralqualifiers - 追加で必要な修飾子 InstanceIllegalArgumentExceptionSE - 同じ非反復修飾子型の 2 つのインスタンス、または修飾子型ではないアノテーションのインスタンスが渡された場合 IllegalStateExceptionSE - コンテナーがすでにシャットダウンされている場合 default StreamSE<T> stream()
呼び出されると、このインスタンスで使用可能な Bean のストリームを提供します。Bean が見つからない場合は、空のストリームを返します。
Instance オブジェクトに関連付けられた Bean を表す Stream boolean isUnsatisfied()
必要な型と修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean がないかどうかを判別します。
Instance が注入されたクラスへの注入に適格な Bean がない場合は true、それ以外の場合は false。boolean isAmbiguous()
必要な型と修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean が複数あるかどうかを判別します。
Instance が注入されたクラスへの注入に適格な Bean が複数ある場合は true、それ以外の場合は false。default boolean isResolvable()
必要な型と修飾子に一致し、親 Instance が注入されたクラスへの注入に適格な Bean が 1 つだけあるかどうかを判別します。
Instance が注入されたクラスへの注入に適格な Bean が 1 つだけある場合は true、それ以外の場合は false。void destroy(T instance)
呼び出されると、Bean のスコープ型のアクティブなコンテキストオブジェクトが Bean インスタンスの破棄をサポートしている場合、コンテナーはインスタンスを破棄します。すべての通常のスコープの組み込みコンテキストは、Bean インスタンスの破棄をサポートします。
渡されるインスタンスは、同じ Instance オブジェクトから取得された依存スコープの Bean インスタンスか、通常のスコープの Bean インスタンスのクライアントプロキシのいずれかである必要があります。
instance - 破棄するインスタンス UnsupportedOperationExceptionSE - Bean のスコープ型のアクティブコンテキストオブジェクトが Bean インスタンスの破棄をサポートしていない場合 Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.