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