パッケージ jakarta.enterprise.invoke

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

型パラメーター:
T - このビルダーの結果の型。常に Invoker を表しますが、必ずしも直接 Invoker インスタンスである必要はありません

public interface InvokerBuilder<T>
Invoker のビルダー。プレーンなメソッド呼び出しに加えて追加の動作を構成できます。

ルックアップ

ターゲット Bean インスタンス (withInstanceLookup()) および各ターゲットメソッドパラメーター (withArgumentLookup(int)) については、Invoker.invoke() に渡される対応する値を無視し、代わりに CDI コンテナーから値を検索するように指定できます。

例: 次の管理対象 Bean が存在すると仮定します。

 @Dependent
 public class MyService {
     public String hello(String name) {
         return "Hello " + name + "!";
     }
 }
 
CDI ベースのフレームワークでは、コンテキスト参照を手動で取得するのではなく、CDI コンテナーから MyService を自動的に検索する hello() メソッドの呼び出し元を構築する必要がある場合があります。

builder が MyService.hello() の InvokerBuilder であると仮定すると、次のような呼び出し元を構築できます。

 builder.withInstanceLookup().build();
 
その後、hello() メソッドを呼び出すために、フレームワークは null をインスタンスとして渡すことができます。
 invoker.invoke(null, new Object[] { "world" })
 
呼び出し元はターゲット Bean のインスタンスを自動的に検索するため、メソッドは正しく呼び出され、戻り値は "Hello world!" になります。
導入:
4.1
  • 方法の概要

    修飾子と型
    メソッド
    説明
    構築された Invoker またはその表現を返します。
    withArgumentLookup(int position)
    指定された position での引数の検索を有効にします。
    ターゲット Bean インスタンスのルックアップを有効にします。
  • メソッドの詳細

    • withInstanceLookup

      InvokerBuilder<T> withInstanceLookup()
      ターゲット Bean インスタンスのルックアップを有効にします。
      戻り値:
      このビルダー
    • withArgumentLookup

      InvokerBuilder<T> withArgumentLookup(int position)
      指定された position での引数の検索を有効にします。
      パラメーター:
      position - ルックアップを有効にするターゲットメソッドパラメーターのゼロベースの位置
      戻り値:
      このビルダー
      例外:
      IllegalArgumentExceptionSE - position が 0 未満か、ターゲットメソッドで宣言されたパラメーターの数以上である場合
    • build

      T build()
      構築された Invoker またはその表現を返します。実装では、可能な場合はすでに構築された呼び出し元を再利用することは許可されていますが、必須ではありません。
      戻り値:
      構築された呼び出し元