net.jomura.reflect
クラス ReflectUtil

java.lang.Object
  └net.jomura.reflect.ReflectUtil

public final class ReflectUtil
extends java.lang.Object

アクセス修飾子に依らずget/set,invokeするためのユーティリティクラス。
JUnitテストケース等で利用されることを想定。

導入されたバージョン:
2011/06/28

メソッドの概要
static
<T> T
get(java.lang.Object target, java.lang.String fieldName)
          指定インスタンスorクラスからフィールド値を取得します。
static
<T> T
get(java.lang.Object target, java.lang.String fieldName, boolean superClassSearchFlag)
          指定インスタンスorクラスからフィールド値を取得します。
static java.lang.reflect.Field getField(java.lang.Class<?> targetClass, java.lang.String fieldName)
          クラスフィールドを取得します。
static java.lang.reflect.Field getField(java.lang.Class<?> targetClass, java.lang.String fieldName, boolean superClassSearchFlag)
          クラスフィールドを取得します。
static java.lang.reflect.Method getMethod(java.lang.Class<?> target, java.lang.String methodName, java.lang.Class<?>[] paramClasses)
          指定クラスから指定メソッド名・引数の型配列を持つメソッドインスタンスを取得します。
static java.lang.reflect.Method getMethod(java.lang.Class<?> target, java.lang.String methodName, java.lang.Class<?>[] paramClasses, boolean superClassSearchFlag)
          指定クラスから指定メソッド名・引数の型配列を持つメソッドインスタンスを取得します。
static
<T> T
invoke(java.lang.Object target, java.lang.String methodName, java.lang.Class<?>[] paramClasses, java.lang.Object[] paramValues)
          対象インスタンスorクラスのメソッドを実行します。
static
<T> T
invoke(java.lang.Object target, java.lang.String methodName, java.lang.Class<?>[] paramClasses, java.lang.Object[] paramValues, boolean superClassSearchFlag)
          対象インスタンスorクラスのメソッドを実行します。
static void set(java.lang.Object target, java.lang.String fieldName, java.lang.Object value)
          対象インスタンスorクラスのフィールドに値を設定します。
static void set(java.lang.Object target, java.lang.String fieldName, java.lang.Object value, boolean superClassSearchFlag)
          対象インスタンスorクラスのフィールドに値を設定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

get

public static <T> T get(java.lang.Object target,
                        java.lang.String fieldName)
指定インスタンスorクラスからフィールド値を取得します。
クラスオブジェクトを指定した場合、staticフィールドの値を取得します。
public以外のフィールドも取得可能です。
スーパークラスのフィールドを検索します。

型パラメータ:
T - 戻り値の型変数
パラメータ:
target - 取得対象のインスタンス or クラス
fieldName - 取得するフィールドの名称
戻り値:
取得結果インスタンス
関連項目:
getField(Class, String, boolean)

get

public static <T> T get(java.lang.Object target,
                        java.lang.String fieldName,
                        boolean superClassSearchFlag)
指定インスタンスorクラスからフィールド値を取得します。
クラスオブジェクトを指定した場合、staticフィールドの値を取得します。
public以外のフィールドも取得可能です。
スーパークラス検索フラグがtrueの場合、スーパークラスのフィールドを検索し、値を取得します。

型パラメータ:
T - 戻り値の型変数
パラメータ:
target - 取得対象のインスタンス or クラス
fieldName - 取得するフィールドの名称
superClassSearchFlag - スーパークラス検索フラグ
戻り値:
取得結果インスタンス
関連項目:
getField(Class, String, boolean)

getField

public static java.lang.reflect.Field getField(java.lang.Class<?> targetClass,
                                               java.lang.String fieldName)
クラスフィールドを取得します。
全ての可視性のフィールドが取得可能です。
スーパークラスのフィールドを検索します。
フィールドが存在しなかった場合、nullを返します。

パラメータ:
targetClass - 対象クラス
fieldName - 取得フィールド名
戻り値:
フィールドインスタンス。存在しなかった場合はnull。

getField

public static java.lang.reflect.Field getField(java.lang.Class<?> targetClass,
                                               java.lang.String fieldName,
                                               boolean superClassSearchFlag)
クラスフィールドを取得します。
全ての可視性のフィールドが取得可能です。
スーパークラス検索フラグがfalseの場合、対象クラスのみのフィールドを取得し、 trueの場合、スーパークラスのフィールドも検索し、最初に見つかったフィールドを返します。
フィールドが存在しなかった場合、nullを返します。

パラメータ:
targetClass - 対象クラス
fieldName - 取得フィールド名
superClassSearchFlag - スーパークラス検索フラグ
戻り値:
フィールドインスタンス。存在しなかった場合はnull。

getMethod

public static java.lang.reflect.Method getMethod(java.lang.Class<?> target,
                                                 java.lang.String methodName,
                                                 java.lang.Class<?>[] paramClasses)
指定クラスから指定メソッド名・引数の型配列を持つメソッドインスタンスを取得します。
public以外のメソッドも取得できます。
スーパークラスのフィールドを検索します。
メソッドが存在しなかった場合、nullを返します。

パラメータ:
target - 対象クラス
methodName - 取得メソッド名
paramClasses - 取得メソッド引数の型配列。引数が無い場合はnullまたはサイズ0の配列
戻り値:
条件と一致したメソッドインスタンス

getMethod

public static java.lang.reflect.Method getMethod(java.lang.Class<?> target,
                                                 java.lang.String methodName,
                                                 java.lang.Class<?>[] paramClasses,
                                                 boolean superClassSearchFlag)
指定クラスから指定メソッド名・引数の型配列を持つメソッドインスタンスを取得します。
public以外のメソッドも取得できます。
スーパークラス検索フラグがtrueの場合、親クラスまで探します。
メソッドが存在しなかった場合、nullを返します。

パラメータ:
target - 対象クラス
methodName - 取得メソッド名
paramClasses - 取得メソッド引数の型配列。引数が無い場合はnullまたはサイズ0の配列
superClassSearchFlag - スーパークラス検索フラグ
戻り値:
条件と一致したメソッドインスタンス

invoke

public static <T> T invoke(java.lang.Object target,
                           java.lang.String methodName,
                           java.lang.Class<?>[] paramClasses,
                           java.lang.Object[] paramValues)
対象インスタンスorクラスのメソッドを実行します。
クラスオブジェクトを指定した場合、staticメソッドを実行します。
public以外のメソッドも実行可能です。
スーパークラスのフィールドを検索します。

型パラメータ:
T - 戻り値の型変数
パラメータ:
target - 対象インスタンスorクラス
methodName - 実行メソッド名
paramClasses - 実行メソッドの引数型配列。引数がない場合nullを設定。
paramValues - メソッド実行時の引数に設定する値配列。引数がない場合nullを設定。
戻り値:
実行結果。void型の場合、nullが返される。
関連項目:
getMethod(Class, String, Class[], boolean)

invoke

public static <T> T invoke(java.lang.Object target,
                           java.lang.String methodName,
                           java.lang.Class<?>[] paramClasses,
                           java.lang.Object[] paramValues,
                           boolean superClassSearchFlag)
対象インスタンスorクラスのメソッドを実行します。
クラスオブジェクトを指定した場合、staticメソッドを実行します。
public以外のメソッドも実行可能です。
スーパークラス検索フラグがtrueの場合、親クラスのメソッドを検索し実行します。

型パラメータ:
T - 戻り値の型変数
パラメータ:
target - 対象インスタンスorクラス
methodName - 実行メソッド名
paramClasses - 実行メソッドの引数型配列。引数がない場合nullを設定。
paramValues - メソッド実行時の引数に設定する値配列。引数がない場合nullを設定。
superClassSearchFlag - スーパークラス検索フラグ
戻り値:
実行結果。void型の場合、nullが返される。
関連項目:
getMethod(Class, String, Class[], boolean)

set

public static void set(java.lang.Object target,
                       java.lang.String fieldName,
                       java.lang.Object value)
対象インスタンスorクラスのフィールドに値を設定します。
クラスオブジェクトを指定した場合、staticフィールドに値を設定します。
全ての可視性のフィールドに対し、値の設定が可能です。
スーパークラスのフィールドを検索します。

パラメータ:
target - 設定対象のインスタンスorクラス
fieldName - 設定するフィールドの名称
value - 設定する値
関連項目:
getField(Class, String, boolean)

set

public static void set(java.lang.Object target,
                       java.lang.String fieldName,
                       java.lang.Object value,
                       boolean superClassSearchFlag)
対象インスタンスorクラスのフィールドに値を設定します。
クラスオブジェクトを指定した場合、staticフィールドに値を設定します。
全ての可視性のフィールドに対し、値の設定が可能です。
スーパークラス検索指定がfalseの場合、対象インスタンスのフィールドのみ、 trueの場合は、スーパークラスのフィールドも検索対象とし、最初に見つかったフィールドに値を設定します。

パラメータ:
target - 設定対象のインスタンスorクラス
fieldName - 設定するフィールドの名称
superClassSearchFlag - スーパークラス検索フラグ
value - 設定する値
関連項目:
getField(Class, String, boolean)