パッケージ 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()の呼び出し元にスローできます。動作はインジェクターの実装や、同じインジェクターの異なる構成でさえ異なる可能性があるため、呼び出し元はこのような例外を処理しようとしないでください。