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