インターフェース 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- 対象メソッドが例外をスローしたとき