public abstract class ReflectionTestUtils extends ObjectSE
ReflectionTestUtils
は、単体および統合テストのシナリオで使用するためのリフレクションベースのユーティリティメソッドのコレクションです。 例: public
以外のフィールドを設定したり、public
以外の setter メソッドを呼び出したり、public
以外の構成またはライフサイクルコールバックメソッドを呼び出したりすると、次のようなコードをテストできると便利な場合があります。
public
setter メソッドとは対照的に、private
または protected
フィールドアクセスの使用を許可する JPA や Hibernate などの ORM フレームワーク。private
または protected
フィールド、setter メソッド、構成メソッドに依存性注入を提供する @Autowired
、@Inject
EE、@Resource
SE などのアノテーションに対する Spring のサポート。@PostConstruct
SE や @PreDestroy
SE などのアノテーションの使用。 さらに、このクラスのいくつかのメソッドは、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, waitSE
public static void setField(ObjectSE targetObject, StringSE name, @Nullable ObjectSE value)
targetObject
上の指定された name
のフィールドを、提供された value
に設定SEします。 このメソッドは setField(Object, String, Object, Class)
に委譲し、type
引数に null
を提供します。
targetObject
- フィールドを設定する対象オブジェクト。非 null
name
- 設定するフィールドの名前。非 null
value
- 設定する値 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
- フィールドを設定する対象オブジェクト。非 null
name
- 設定するフィールドの名前。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
- 静的フィールドを設定するターゲットクラス。非 null
name
- 設定するフィールドの名前。非 null
value
- 設定する値 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
- 静的フィールドを設定するターゲットクラス。非 null
name
- 設定するフィールドの名前。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
- フィールドを取得するターゲットオブジェクト。非 null
name
- 取得するフィールドの名前。非 null
getField(Class, String)
@Nullable public static ObjectSE getField(ClassSE<?> targetClass, StringSE name)
targetClass
から、指定された name
の静的フィールドSEの値を取得します。 このメソッドは getField(Object, Class, String)
に委譲し、targetObject
引数に null
を提供します。
targetClass
- 静的フィールドを取得するターゲットクラス。非 null
name
- 取得するフィールドの名前。非 null
getField(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
- 取得するフィールドの名前。非 null
getField(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)