インターフェース Invoker<T,R>
- 型パラメーター:
T
- ターゲット Bean の型R
- 対象メソッドの戻り値の型
public interface Invoker<T,R>
呼び出し元は、ターゲット Bean のインスタンス上でターゲットメソッドを間接的に呼び出すことを許可します。
CDI ベースのフレームワークは、アプリケーションメソッドを呼び出す必要があるときに呼び出し元を使用することが想定されています。アプリケーションは独自のメソッドを直接呼び出すことができるため、呼び出し元を使用する必要はありません。
例: 次の管理対象 Bean が存在すると仮定します。
@Dependent public class MyService { public String hello(String name) { return "Hello " + name + "!"; } }さらに、
invoker
が MyService
Bean の hello()
メソッドの呼び出し元であり、myService
が Bean のコンテキスト参照であると仮定します。次に、hello()
メソッドを間接的に呼び出すために、フレームワークは以下を呼び出します。invoker.invoke(myService, new Object[] { "world" })戻り値は
"Hello world!"
になります。- 導入:
- 4.1
- 関連事項:
メソッドのサマリー
メソッドの詳細
invoke
ターゲット Bean の指定されたinstance
でターゲットメソッドを呼び出し、指定されたarguments
を渡します。ターゲットメソッドが正常に返された場合、このメソッドは戻り値を返します。ただし、ターゲットメソッドがvoid
と宣言されている場合は、このメソッドはnull
を返します。ターゲットメソッドが例外をスローした場合、その例外は直接再スローされます。- パラメーター:
instance
- ターゲットメソッドが呼び出されるターゲット Bean のインスタンス。ターゲットメソッドがstatic
の場合のみnull
になりますarguments
- ターゲットメソッドに渡される引数。ターゲットメソッドがパラメーターを宣言していない場合にのみnull
になります- 戻り値:
- 対象メソッドの戻り値、または対象メソッドが
void
と宣言されている場合はnull
- 例外:
RuntimeExceptionSE
-instance
またはarguments
が正しくない場合ExceptionSE
- 対象メソッドが例外をスローしたとき