public abstract class ReflectionTestUtils extends ObjectSE
ReflectionTestUtils は、単体および統合テストのシナリオで使用するためのリフレクションベースのユーティリティメソッドのコレクションです。 例: public 以外のフィールドを設定したり、public 以外の setter メソッドを呼び出したり、public 以外の構成またはライフサイクルコールバックメソッドを呼び出したりすると、次のようなコードをテストできると便利な場合があります。
public setter メソッドとは対照的に、private または protected フィールドアクセスの使用を許可する JPA や Hibernate などの ORM フレームワーク。private または protected フィールド、setter メソッド、構成メソッドに依存性注入を提供する @Autowired、@InjectEE、@ResourceSE などのアノテーションに対する Spring のサポート。@PostConstructSE や @PreDestroySE などのアノテーションの使用。 さらに、このクラスのいくつかのメソッドは、static フィールドと static メソッドのサポートを提供します。— たとえば、setField(Class, String, Object)、getField(Class, String)、invokeMethod(Class, String, Object...)、invokeMethod(Object, Class, String, Object...) など。
ReflectionUtils, AopTestUtils| コンストラクターと説明 |
|---|
ReflectionTestUtils() |
| 修飾子と型 | メソッドと説明 |
|---|---|
static ObjectSE | getField(ClassSE<?> targetClass, StringSE name) |
static ObjectSE | getField(ObjectSE targetObject, ClassSE<?> targetClass, StringSE name) |
static ObjectSE | getField(ObjectSE targetObject, StringSE name) |
static ObjectSE | invokeGetterMethod(ObjectSE target, StringSE name) 指定された value を使用して、指定されたターゲットオブジェクトで指定された name を使用して getter メソッドを呼び出します。 |
static <T> T | invokeMethod(ClassSE<?> targetClass, StringSE name, ObjectSE... args) 指定された引数を使用して、指定されたターゲットクラスで指定された name を使用して静的メソッドを呼び出します。 |
static <T> T | invokeMethod(ObjectSE targetObject, ClassSE<?> targetClass, StringSE name, ObjectSE... args) 指定された引数を使用して、指定された targetObject/targetClass で指定された name を使用してメソッドを呼び出します。 |
static <T> T | invokeMethod(ObjectSE target, StringSE name, ObjectSE... args) 指定された引数を使用して、指定されたターゲットオブジェクトで指定された name を使用してメソッドを呼び出します。 |
static void | invokeSetterMethod(ObjectSE target, StringSE name, ObjectSE value) 指定された value を使用して、指定されたターゲットオブジェクトで指定された name を使用して setter メソッドを呼び出します。 |
static void | invokeSetterMethod(ObjectSE target, StringSE name, ObjectSE value, ClassSE<?> type) 指定された value を使用して、指定されたターゲットオブジェクトで指定された name を使用して setter メソッドを呼び出します。 |
static void | setField(ClassSE<?> targetClass, StringSE name, ObjectSE value) |
static void | setField(ClassSE<?> targetClass, StringSE name, ObjectSE value, ClassSE<?> type) |
static void | setField(ObjectSE targetObject, ClassSE<?> targetClass, StringSE name, ObjectSE value, ClassSE<?> type) |
static void | setField(ObjectSE targetObject, StringSE name, ObjectSE value) |
static void | setField(ObjectSE targetObject, StringSE name, ObjectSE value, ClassSE<?> type) |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static void setField(ObjectSE targetObject, StringSE name, @Nullable ObjectSE value)
targetObject 上の指定された name のフィールドを、提供された value に設定SEします。 このメソッドは setField(Object, String, Object, Class) に委譲し、type 引数に null を提供します。
targetObject - フィールドを設定する対象オブジェクト。非 nullname - 設定するフィールドの名前。非 nullvalue - 設定する値 public static void setField(ObjectSE targetObject, @Nullable StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type)
targetObject 上の指定された name/type のフィールドSEを提供された value に設定します。 このメソッドは setField(Object, Class, String, Object, Class) に委譲し、targetClass 引数に null を提供します。
targetObject - フィールドを設定する対象オブジェクト。非 nullname - 設定するフィールドの名前。type が指定されている場合、null になります value - 設定する値 type - 設定するフィールドの型。name が指定されている場合、null になります public static void setField(ClassSE<?> targetClass, StringSE name, @Nullable ObjectSE value)
targetClass 上の指定された name の静的フィールドを提供された value に設定SEします。 このメソッドは setField(Object, Class, String, Object, Class) に委譲し、targetObject および type 引数に null を提供します。
このメソッドは、static final フィールドの設定をサポートしていません。
targetClass - 静的フィールドを設定するターゲットクラス。非 nullname - 設定するフィールドの名前。非 nullvalue - 設定する値 public static void setField(ClassSE<?> targetClass, @Nullable StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type)
targetClass 上の指定された name/type の静的フィールドSEを提供された value に設定します。 このメソッドは setField(Object, Class, String, Object, Class) に委譲し、targetObject 引数に null を提供します。
このメソッドは、static final フィールドの設定をサポートしていません。
targetClass - 静的フィールドを設定するターゲットクラス。非 nullname - 設定するフィールドの名前。type が指定されている場合、null になります value - 設定する値 type - 設定するフィールドの型。name が指定されている場合、null になります public static void setField(@Nullable ObjectSE targetObject, @Nullable ClassSE<?> targetClass, @Nullable StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type)
targetObject/targetClass 上の指定された name/type のフィールドSEを提供された value に設定します。 供給 targetObject がプロキシがある場合、次のようになります開封されたフィールドは、プロキシの究極のゴールに設定することができます。
このメソッドは、目的のフィールドを検索するためにクラス階層をトラバースします。さらに、非 public フィールドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベートフィールドを設定できます。
このメソッドは、static final フィールドの設定をサポートしていません。
targetObject - フィールドを設定する対象オブジェクト。フィールドが静的な場合、null になる場合があります targetClass - フィールドを設定するターゲットクラス。フィールドがインスタンスフィールドの場合、null の場合があります name - 設定するフィールドの名前。type が指定されている場合、null になります value - 設定する値 type - 設定するフィールドの型。name が指定されている場合、null になります ReflectionUtils.findField(Class, String, Class), ReflectionUtils.makeAccessible(Field), ReflectionUtils.setField(Field, Object, Object), AopTestUtils.getUltimateTargetObject(Object)@Nullable public static ObjectSE getField(ObjectSE targetObject, StringSE name)
targetObject から、指定された name を持つフィールドSEの値を取得します。 このメソッドは getField(Object, Class, String) に委譲し、targetClass 引数に null を提供します。
targetObject - フィールドを取得するターゲットオブジェクト。非 nullname - 取得するフィールドの名前。非 nullgetField(Class, String)@Nullable public static ObjectSE getField(ClassSE<?> targetClass, StringSE name)
targetClass から、指定された name の静的フィールドSEの値を取得します。 このメソッドは getField(Object, Class, String) に委譲し、targetObject 引数に null を提供します。
targetClass - 静的フィールドを取得するターゲットクラス。非 nullname - 取得するフィールドの名前。非 nullgetField(Object, String)@Nullable public static ObjectSE getField(@Nullable ObjectSE targetObject, @Nullable ClassSE<?> targetClass, StringSE name)
targetObject/targetClass から指定された name を持つフィールドSEの値を取得します。 供給 targetObject がプロキシである場合、なり開封フィールドは、プロキシの最終的なゴールから取得されることを可能にします。
このメソッドは、目的のフィールドを検索するためにクラス階層をトラバースします。さらに、非 public フィールドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベートフィールドを取得できます。
targetObject - フィールドを取得するターゲットオブジェクト。フィールドが静的な場合、null になる場合があります targetClass - フィールドを取得するターゲットクラス。フィールドがインスタンスフィールドの場合、null の場合があります name - 取得するフィールドの名前。非 nullgetField(Object, String), getField(Class, String), ReflectionUtils.findField(Class, String, Class), ReflectionUtils.makeAccessible(Field), ReflectionUtils.getField(Field, Object), AopTestUtils.getUltimateTargetObject(Object)public static void invokeSetterMethod(ObjectSE target, StringSE name, ObjectSE value)
value を使用して、指定されたターゲットオブジェクトで指定された name を使用して setter メソッドを呼び出します。 このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、public 以外のメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベート setter メソッドを呼び出すことができます。
さらに、このメソッドは JavaBean スタイルのプロパティ名をサポートします。例: ターゲットオブジェクトに name プロパティを設定する場合、メソッド名として "name" または "setName" のいずれかを渡すことができます。
target - 指定された setter メソッドを呼び出すターゲットオブジェクト name - 呼び出す setter メソッドの名前または対応するプロパティ名 value - setter メソッドに提供する値 ReflectionUtils.findMethod(Class, String, Class[]), ReflectionUtils.makeAccessible(Method), ReflectionUtils.invokeMethod(Method, Object, Object[])public static void invokeSetterMethod(ObjectSE target, StringSE name, @Nullable ObjectSE value, @Nullable ClassSE<?> type)
value を使用して、指定されたターゲットオブジェクトで指定された name を使用して setter メソッドを呼び出します。 このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、public 以外のメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベート setter メソッドを呼び出すことができます。
さらに、このメソッドは JavaBean スタイルのプロパティ名をサポートします。例: ターゲットオブジェクトに name プロパティを設定する場合、メソッド名として "name" または "setName" のいずれかを渡すことができます。
target - 指定された setter メソッドを呼び出すターゲットオブジェクト name - 呼び出す setter メソッドの名前または対応するプロパティ名 value - setter メソッドに提供する値 type - setter メソッドによって宣言された仮パラメーター型 ReflectionUtils.findMethod(Class, String, Class[]), ReflectionUtils.makeAccessible(Method), ReflectionUtils.invokeMethod(Method, Object, Object[])@Nullable public static ObjectSE invokeGetterMethod(ObjectSE target, StringSE name)
value を使用して、指定されたターゲットオブジェクトで指定された name を使用して getter メソッドを呼び出します。 このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、public 以外のメソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベート getter メソッドを呼び出すことができます。
さらに、このメソッドは JavaBean スタイルのプロパティ名をサポートします。例: ターゲットオブジェクトの name プロパティを取得する場合、メソッド名として "name" または "getName" を渡すことができます。
target - 指定された getter メソッドを呼び出すターゲットオブジェクト name - 呼び出す getter メソッドの名前または対応するプロパティ名 ReflectionUtils.findMethod(Class, String, Class[]), ReflectionUtils.makeAccessible(Method), ReflectionUtils.invokeMethod(Method, Object, Object[])@Nullable public static <T> T invokeMethod(ObjectSE target, StringSE name, ObjectSE... args)
name を使用してメソッドを呼び出します。 このメソッドは invokeMethod(Object, Class, String, Object...) に委譲し、targetClass 引数に null を提供します。
target - 指定されたメソッドを呼び出す対象オブジェクト name - 呼び出すメソッドの名前 args - メソッドに提供する引数 invokeMethod(Class, String, Object...), invokeMethod(Object, Class, String, Object...), MethodInvoker, ReflectionUtils.makeAccessible(Method), ReflectionUtils.invokeMethod(Method, Object, Object[]), ReflectionUtils.handleReflectionException(Exception)@Nullable public static <T> T invokeMethod(ClassSE<?> targetClass, StringSE name, ObjectSE... args)
name を使用して静的メソッドを呼び出します。 このメソッドは invokeMethod(Object, Class, String, Object...) に委譲し、targetObject 引数に null を提供します。
targetClass - 指定されたメソッドを呼び出す対象クラス name - 呼び出すメソッドの名前 args - メソッドに提供する引数 invokeMethod(Object, String, Object...), invokeMethod(Object, Class, String, Object...), MethodInvoker, ReflectionUtils.makeAccessible(Method), ReflectionUtils.invokeMethod(Method, Object, Object[]), ReflectionUtils.handleReflectionException(Exception)@Nullable public static <T> T invokeMethod(@Nullable ObjectSE targetObject, @Nullable ClassSE<?> targetClass, StringSE name, ObjectSE... args)
targetObject/targetClass で指定された name を使用してメソッドを呼び出します。 このメソッドは、目的のメソッドを検索するためにクラス階層をトラバースします。さらに、非 public メソッドにアクセスできるようにする試みが行われるため、protected、private、パッケージプライベートメソッドを呼び出すことができます。
targetObject - メソッドを呼び出す対象オブジェクト。メソッドが静的な場合、null targetClass - メソッドを呼び出す対象クラス。メソッドがインスタンスメソッドの場合、null name - 呼び出すメソッドの名前 args - メソッドに提供する引数 invokeMethod(Object, String, Object...), invokeMethod(Class, String, Object...), MethodInvoker, ReflectionUtils.makeAccessible(Method), ReflectionUtils.invokeMethod(Method, Object, Object[]), ReflectionUtils.handleReflectionException(Exception)