jp.hishidama.lang.reflect
クラス InvokeUtil

java.lang.Object
  上位を拡張 jp.hishidama.lang.reflect.InvokeUtil

public class InvokeUtil
extends Object

メソッド呼び出しユーティリティー.

指定された名前のメソッドを呼び出すユーティリティー。

まず、呼び出したいクラスのメソッドを管理用の名前を付けて登録する。
そして、その管理用の名前でメソッドを呼び出す。
このとき、オブジェクトや引数の型は呼び出すメソッドに合致する型に変換する。

オーバーロードされているメソッドの場合、引数の個数が一致しているメソッドが1つだけあれば、それを呼び出す。
複数ある場合、なるべく型が一致しているメソッドを呼び出す(かなり適当にマッチさせているので、そんなに厳密ではない…)。

導入されたバージョン:
2010.02.16
作成者:
ひしだま

コンストラクタの概要
InvokeUtil()
          コンストラクター.
InvokeUtil(TypeConverterManager manager)
          コンストラクター.
 
メソッドの概要
 void addInvoker(Invoker invoker)
          メソッド呼び出しクラス登録.
 void addInvoker(String name, Invoker invoker)
          メソッド呼び出しクラス登録.
 void addMethod(Class<?> clazz, String name, Method method)
          メソッド登録.
 void addMethods(Class<?> clazz, String prefix)
          メソッド登録.
 TypeConverterManager getConverterManager()
          型変換オブジェクト管理クラス取得.
 Invoker getInstanceInvoker(String name, Object... args)
          インスタンスメソッド呼び出しクラス取得.
 Invoker getStaticInvoker(String name, Object... args)
          クラスメソッド呼び出しクラス取得.
 Object invoke(String name, Object obj, Object... args)
          メソッド呼び出し.
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

InvokeUtil

public InvokeUtil()
コンストラクター.


InvokeUtil

public InvokeUtil(TypeConverterManager manager)
コンストラクター.

パラメータ:
manager - 型変換オブジェクト管理クラス
メソッドの詳細

getConverterManager

public TypeConverterManager getConverterManager()
型変換オブジェクト管理クラス取得.

戻り値:
型変換オブジェクト管理クラス

addMethods

public void addMethods(Class<?> clazz,
                       String prefix)
メソッド登録.

指定されたクラスの全メソッドを管理対象に追加する。
管理用の名前には、メソッド名の前に指定された接頭辞を付加する。

パラメータ:
clazz - クラス
prefix - 名前の接頭辞
関連項目:
addMethod(Class, String, Method)

addMethod

public void addMethod(Class<?> clazz,
                      String name,
                      Method method)
メソッド登録.

パラメータ:
clazz - 対象クラス
name - 管理用の名前
method - メソッド
関連項目:
addInvoker(String, Invoker)

addInvoker

public void addInvoker(Invoker invoker)
メソッド呼び出しクラス登録.

パラメータ:
invoker - メソッド呼び出しクラス
導入されたバージョン:
2010.02.17

addInvoker

public void addInvoker(String name,
                       Invoker invoker)
メソッド呼び出しクラス登録.

パラメータ:
name - 管理用の名前
invoker - メソッド呼び出しクラス

invoke

public Object invoke(String name,
                     Object obj,
                     Object... args)
メソッド呼び出し.

パラメータ:
name - 管理用の名前
obj - 対象オブジェクト
args - 引数
戻り値:
メソッドの戻り値
例外:
UnsupportedOperationException - 管理対象外の名前の場合
RuntimeException - メソッド呼び出し時に発生した例外

getInstanceInvoker

public Invoker getInstanceInvoker(String name,
                                  Object... args)
インスタンスメソッド呼び出しクラス取得.

パラメータ:
name - 管理用の名前
args - 引数
戻り値:
メソッド呼び出しクラス(見つからない場合、null)
例外:
UnsupportedOperationException - 管理対象外の名前の場合

getStaticInvoker

public Invoker getStaticInvoker(String name,
                                Object... args)
クラスメソッド呼び出しクラス取得.

パラメータ:
name - 管理用の名前
args - 引数
戻り値:
メソッド呼び出しクラス(見つからない場合、null)
例外:
UnsupportedOperationException - 管理対象外の名前の場合