パッケージ jakarta.inject

インターフェース Provider<T>

  • すべての既知のサブインターフェース:
    Instance<T>SeContainer
    すべての既知の実装クラス:
    CDI

    public interface Provider<T>
    T のインスタンスを提供します。通常、インジェクターによって実装されます。注入可能な任意の型 T の場合、Provider<T> も注入できます。T を直接注入するのと比較して、Provider<T> を注入すると次のことが可能になります。
    • 複数のインスタンスを取得します。
    • インスタンスの遅延またはオプションの取得。
    • 循環依存関係を壊します。
    • スコープを抽象化して、包含スコープ内のインスタンスからより小さなスコープ内のインスタンスを検索できるようにします。

    例:

       class Car {
         @Inject Car(Provider<Seat> seatProvider) {
           Seat driver = seatProvider.get();
           Seat passenger = seatProvider.get();
           ...
         }
       }
    • メソッドの詳細

      • get

        T get()
        T の完全に構築および挿入されたインスタンスを提供します。
        戻り値:
        T のインスタンス。
        例外:
        RuntimeExceptionSE - インスタンスの提供中にインジェクターでエラーが発生した場合。例: T の注入可能なメンバーが例外をスローした場合、インジェクターは例外をラップし、それを get() の呼び出し元にスローできます。動作はインジェクターの実装や、同じインジェクターの異なる構成でさえ異なる可能性があるため、呼び出し元はこのような例外を処理しようとしないでください。