jp.terasoluna.fw.ex.unit.util
クラス ReflectionUtils

java.lang.Object
  上位を拡張 jp.terasoluna.fw.ex.unit.util.ReflectionUtils

public class ReflectionUtils
extends Object

private修飾子のフィールドにアクセスしたりメソッドの実行を行うユーティリティ


コンストラクタの概要
ReflectionUtils()
           
 
メソッドの概要
static Object[] args(Object... args)
           
static Class<?>[] classes(Class<?>... classes)
           
static String[] createFiledNames(Class<?> clazz)
          クラス内のフィールド名を取得する。
static
<T> T
getField(Class<?> clazz, String name)
          対象Classが表すクラスまたはインタフェースの指定されたstaticなフィールドの値を返します。
static
<T> T
getField(Object obj, Class<?> clazz, String name)
          対象オブジェクトのクラスの指定されたフィールドの値を返します。
static
<T> T
getField(Object obj, String name)
          対象オブジェクトのクラスの指定されたフィールドの値を返します。
static
<T> T
invoke(Class<?> clazz, String methodName)
          指定したクラスに対して指定したパラメータで指定した名前のメソッドを呼び出します。
static
<T> T
invoke(Class<?> clazz, String methodName, Class<?>[] parameterTypes, Object[] args)
          指定したクラスに対して指定したパラメータで指定した名前のメソッドを呼び出します。
static
<T> T
invoke(Object obj, String methodName)
          指定したオブジェクトに対して指定した名前のメソッドを呼び出します。
static
<T> T
invoke(Object obj, String methodName, Class<?>[] parameterTypes, Object[] args)
          指定したオブジェクトに対して指定したパラメータで指定した名前のメソッドを呼び出します。
static
<T> T
newInstance(Class<T> clazz)
          引数のClassが表すクラスの新しいインスタンスを生成します。
static
<T> T
newInstance(Class<T> clazz, Class<?>[] argClasses, Object[] args)
          引数のClassが表すクラスの新しいインスタンスを生成します。
static void setField(Class<?> clazz, String name, Object value)
          対象Classが表すクラスまたはインタフェースの指定されたフィールドの値を変更します。
static void setField(Object obj, String name, Object value)
          対象オブジェクトのクラスの指定されたフィールドの値を変更します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ReflectionUtils

public ReflectionUtils()
メソッドの詳細

newInstance

public static <T> T newInstance(Class<T> clazz)
引数のClassが表すクラスの新しいインスタンスを生成します。
プライベートなコンストラクタを持つ場合でもインスタンスを生成できます。
このメソッドではコンストラクタ引数がないものが実行されます。

パラメータ:
clazz - 対象クラス
戻り値:
クラスのインスタンス
例外:
ReflectionFailedException - インスタンスの生成時に例外が発生した場合

newInstance

public static <T> T newInstance(Class<T> clazz,
                                Class<?>[] argClasses,
                                Object[] args)
引数のClassが表すクラスの新しいインスタンスを生成します。
プライベートなコンストラクタを持つ場合でもインスタンスを生成できます。
このメソッドではコンストラクタ引数がargsClassesと一致するものが実行されます。

パラメータ:
clazz - 対象クラス
argClasses - コンストラクタの引数の型配列
args - コンストラクタの引数
戻り値:
クラスのインスタンス
例外:
ReflectionFailedException - インスタンスの生成時に例外が発生した場合

getField

public static <T> T getField(Object obj,
                             String name)
対象オブジェクトのクラスの指定されたフィールドの値を返します。

本メソッドでは引数のobjのクラスで定義されているフィールドのみ取得可能です。
objの親クラスで定義されているフィールドは取得できません。
objの親クラスで定義されているフィールドを取得したい場合は、getField(Object, Class, String)メソッドを利用して、
第二引数にフィールドが定義されているクラスを指定してください。
また、staticなフィールド値を取得したい場合は、getField(Class, String)メソッドを使用して、第一引数にstaticなフィールドが定義されているクラスを指定してください。

パラメータ:
obj - 対象オブジェクト
name - 取得するフィールドの名前
戻り値:
フィールド値
例外:
ReflectionFailedException - フィールドオブジェクト取得時に例外が発生した場合

getField

public static <T> T getField(Object obj,
                             Class<?> clazz,
                             String name)
対象オブジェクトのクラスの指定されたフィールドの値を返します。

第二引数にフィールドが定義されているクラスを指定してください。

パラメータ:
obj - 対象オブジェクト
clazz - 対象取得フィールドが定義されているクラス
name - 取得するフィールドの名前
戻り値:
フィールド値
導入されたバージョン:
2.1.0

getField

public static <T> T getField(Class<?> clazz,
                             String name)
対象Classが表すクラスまたはインタフェースの指定されたstaticなフィールドの値を返します。

パラメータ:
clazz - 対象クラス
name - 取得するフィールドの名前
戻り値:
フィールド値
例外:
ReflectionFailedException - フィールドオブジェクト取得時に例外が発生した場合

setField

public static void setField(Object obj,
                            String name,
                            Object value)
対象オブジェクトのクラスの指定されたフィールドの値を変更します。
finalなフィールドに対しては変更できません。
getField(Object, String)によって取得可能ですが、
対象のオブジェクトのフィールド値自体は変わりません(getterで取得した場合、設定前の値が返却されます。)

パラメータ:
obj - 対象オブジェクト
name - 変更するフィールドの名前
value - 変更する値
例外:
ReflectionFailedException - フィールドオブジェクト取得時に例外が発生した場合

setField

public static void setField(Class<?> clazz,
                            String name,
                            Object value)
対象Classが表すクラスまたはインタフェースの指定されたフィールドの値を変更します。
finalなフィールドに対しては変更できません。
finalなフィールドに値を設定するとUTRuntimeExceptionが発生します。

パラメータ:
clazz - 対象クラス
name - 取得するフィールドの名前
value - 変更する値
例外:
ReflectionFailedException - フィールドオブジェクト取得時に例外が発生した場合

invoke

public static <T> T invoke(Object obj,
                           String methodName,
                           Class<?>[] parameterTypes,
                           Object[] args)
指定したオブジェクトに対して指定したパラメータで指定した名前のメソッドを呼び出します。

パラメータ:
obj - 基本となるメソッドの呼び出し元のオブジェクト
methodName - メソッドの名前
parameterTypes - パラメータ配列
args - メソッド呼び出しに使用される引数
戻り値:
メソッドを、パラメータ args を使用して obj にディスパッチした結果
例外:
ReflectionFailedException - メソッドの取得または実行時に例外が発生した場合

invoke

public static <T> T invoke(Object obj,
                           String methodName)
指定したオブジェクトに対して指定した名前のメソッドを呼び出します。
同じ名前のメソッドが複数ある場合にはメソッドの1つが任意で呼び出されます

パラメータ:
obj - 基本となるメソッドの呼び出し元のオブジェクト
methodName - メソッドの名前
戻り値:
メソッドを、obj にディスパッチした結果
例外:
ReflectionFailedException - メソッドの取得または実行時に例外が発生した場合

invoke

public static <T> T invoke(Class<?> clazz,
                           String methodName,
                           Class<?>[] parameterTypes,
                           Object[] args)
指定したクラスに対して指定したパラメータで指定した名前のメソッドを呼び出します。
呼び出すメソッドはstaticである必要があります。

パラメータ:
clazz - 基本となるメソッドの呼び出し元のクラス
methodName - メソッドの名前
parameterTypes - パラメータ配列
args - メソッド呼び出しに使用される引数
戻り値:
メソッドを、パラメータ args を使用して obj にディスパッチした結果
例外:
ReflectionFailedException - メソッドの取得または実行時に例外が発生した場合

invoke

public static <T> T invoke(Class<?> clazz,
                           String methodName)
指定したクラスに対して指定したパラメータで指定した名前のメソッドを呼び出します。
呼び出すメソッドはstaticである必要があります。

パラメータ:
clazz - 基本となるメソッドの呼び出し元のクラス
methodName - メソッドの名前
戻り値:
メソッドを、パラメータ args を使用して obj にディスパッチした結果
例外:
ReflectionFailedException - メソッドの取得または実行時に例外が発生した場合

createFiledNames

public static String[] createFiledNames(Class<?> clazz)
クラス内のフィールド名を取得する。
 親クラスのフィールド名も取得できる。staticなフィールドの名前は取得しない。
 

パラメータ:
clazz - 対象クラス
戻り値:
フィールド名一覧配列

classes

public static Class<?>[] classes(Class<?>... classes)

args

public static Object[] args(Object... args)


Copyright © 2011. All Rights Reserved.