|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectorg.seasar.framework.util.tiger.ReflectionUtil
public abstract class ReflectionUtil
Java5のgenericsや可変長を活用する、リフレクションのためのユーティリティです。
コンストラクタの概要 | |
---|---|
protected |
ReflectionUtil()
インスタンスを構築します。 |
メソッドの概要 | ||
---|---|---|
static
|
forName(String className)
現在のスレッドのコンテキストクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Class オブジェクトを返します。 |
|
static
|
forName(String className,
ClassLoader loader)
指定されたクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた Class オブジェクトを返します。 |
|
static
|
forNameNoException(String className)
現在のスレッドのコンテキストクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Class オブジェクトを返します。 |
|
static
|
forNameNoException(String className,
ClassLoader loader)
指定されたクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Class オブジェクトを返します。 |
|
static
|
getConstructor(Class<T> clazz,
Class<?>... argTypes)
Class オブジェクトが表すクラスの指定されたpublic コンストラクタをリフレクトするConstructor オブジェクトを返します。 |
|
static
|
getDeclaredConstructor(Class<T> clazz,
Class<?>... argTypes)
Class オブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトするConstructor オブジェクトを返します。 |
|
static Field |
getDeclaredField(Class<?> clazz,
String name)
Class オブジェクトが表すクラスまたはインタフェースの指定された宣言フィールドをリフレクトするField オブジェクトを返します。 |
|
static Method |
getDeclaredMethod(Class<?> clazz,
String name,
Class<?>... argTypes)
Class オブジェクトが表すクラスまたはインタフェースの指定されたメンバメソッドをリフレクトするMethod オブジェクトを返します。 |
|
static Class<?> |
getElementTypeOfCollection(Type parameterizedCollection)
パラメタ化されたコレクションの要素型を返します。 |
|
static Class<?> |
getElementTypeOfCollectionFromFieldType(Field field)
指定されたフィールドのパラメタ化されたコレクションの要素型を返します。 |
|
static Class<?> |
getElementTypeOfCollectionFromParameterType(Method method,
int parameterPosition)
指定されたメソッドの引数型として宣言されているパラメタ化されたコレクションの要素型を返します。 |
|
static Class<?> |
getElementTypeOfCollectionFromReturnType(Method method)
指定されたメソッドの戻り値型として宣言されているパラメタ化されたコレクションの要素型を返します。 |
|
static Class<?> |
getElementTypeOfList(Type parameterizedList)
パラメタ化されたリストの要素型を返します。 |
|
static Class<?> |
getElementTypeOfListFromFieldType(Field field)
指定されたフィールドのパラメタ化されたリストの要素型を返します。 |
|
static Class<?> |
getElementTypeOfListFromParameterType(Method method,
int parameterPosition)
指定されたメソッドの引数型として宣言されているパラメタ化されたリストの要素型を返します。 |
|
static Class<?> |
getElementTypeOfListFromReturnType(Method method)
指定されたメソッドの戻り値型として宣言されているパラメタ化されたリストの要素型を返します。 |
|
static Class<?> |
getElementTypeOfSet(Type parameterizedSet)
パラメタ化されたセットの要素型を返します。 |
|
static Class<?> |
getElementTypeOfSetFromFieldType(Field field)
指定されたフィールドのパラメタ化されたセットの要素型を返します。 |
|
static Class<?> |
getElementTypeOfSetFromParameterType(Method method,
int parameterPosition)
指定されたメソッドの引数型として宣言されているパラメタ化されたセットの要素型を返します。 |
|
static Class<?> |
getElementTypeOfSetFromReturnType(Method method)
指定されたメソッドの戻り値型として宣言されているパラメタ化されたセットの要素型を返します。 |
|
static Field |
getField(Class<?> clazz,
String name)
Class オブジェクトが表すクラスまたはインタフェースの指定されたpublic メンバフィールドをリフレクトするField オブジェクトを返します。 |
|
static Method |
getMethod(Class<?> clazz,
String name,
Class<?>... argTypes)
Class オブジェクトが表すクラスまたはインタフェースの指定されたpublic メンバメソッドをリフレクトするMethod オブジェクトを返します。 |
|
static
|
getStaticValue(Field field)
指定されたオブジェクトについて、 Field によって表されるstatic フィールドの値を返します。 |
|
static
|
getValue(Field field,
Object target)
指定されたオブジェクトについて、 Field によって表されるフィールドの値を返します。 |
|
static
|
invoke(Method method,
Object target,
Object... args)
Method オブジェクトによって表される基本となるメソッドを、指定したオブジェクトに対して指定したパラメータで呼び出します。 |
|
static
|
invokeStatic(Method method,
Object... args)
Method オブジェクトによって表される基本となるstatic メソッドを、指定したパラメータで呼び出します。 |
|
static
|
newInstance(Class<T> clazz)
指定されたクラスのデフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。 |
|
static
|
newInstance(Constructor<T> constructor,
Object... args)
指定された初期化パラメータで、コンストラクタの宣言クラスの新しいインスタンスを作成および初期化します。 |
|
static void |
setStaticValue(Field field,
Object value)
Field オブジェクトによって表されるstatic フィールドを、指定された新しい値に設定します。 |
|
static void |
setValue(Field field,
Object target,
Object value)
Field オブジェクトによって表される指定されたオブジェクト引数のフィールドを、指定された新しい値に設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected ReflectionUtil()
メソッドの詳細 |
---|
public static <T> Class<T> forName(String className) throws ClassNotFoundRuntimeException
Class
オブジェクトを返します。
T
- Class
オブジェクトが表すクラスclassName
- 要求するクラスの完全修飾名
Class
オブジェクト
ClassNotFoundRuntimeException
- クラスが見つからなかった場合Class.forName(String)
public static <T> Class<T> forName(String className, ClassLoader loader) throws ClassNotFoundRuntimeException
Class
オブジェクトを返します。
T
- Class
オブジェクトが表すクラスclassName
- 要求するクラスの完全修飾名loader
- クラスのロード元である必要があるクラスローダ
Class
オブジェクト
ClassNotFoundRuntimeException
- クラスが見つからなかった場合Class.forName(String, boolean, ClassLoader)
public static <T> Class<T> forNameNoException(String className)
Class
オブジェクトを返します。
クラスが見つからなかった場合はnull
を返します。
T
- Class
オブジェクトが表すクラスclassName
- 要求するクラスの完全修飾名
Class
オブジェクトClass.forName(String)
public static <T> Class<T> forNameNoException(String className, ClassLoader loader)
Class
オブジェクトを返します。
クラスが見つからなかった場合はnull
を返します。
T
- Class
オブジェクトが表すクラスclassName
- 要求するクラスの完全修飾名loader
- クラスのロード元である必要があるクラスローダ
Class
オブジェクトClass.forName(String)
public static <T> Constructor<T> getConstructor(Class<T> clazz, Class<?>... argTypes) throws NoSuchConstructorRuntimeException
Class
オブジェクトが表すクラスの指定されたpublic
コンストラクタをリフレクトするConstructor
オブジェクトを返します。
T
- Class
オブジェクトが表すクラスclazz
- クラスのClass
オブジェクトargTypes
- パラメータ配列
argTypes
と一致するpublic
コンストラクタのConstructor
オブジェクト
NoSuchConstructorRuntimeException
- 一致するコンストラクタが見つからない場合Class.getConstructor(Class[])
public static <T> Constructor<T> getDeclaredConstructor(Class<T> clazz, Class<?>... argTypes) throws NoSuchConstructorRuntimeException
Class
オブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトするConstructor
オブジェクトを返します。
T
- Class
オブジェクトが表すクラスclazz
- クラスのClass
オブジェクトargTypes
- パラメータ配列
argTypes
と一致するコンストラクタのConstructor
オブジェクト
NoSuchConstructorRuntimeException
- 一致するコンストラクタが見つからない場合Class.getDeclaredConstructor(Class[])
public static Field getField(Class<?> clazz, String name) throws NoSuchFieldRuntimeException
Class
オブジェクトが表すクラスまたはインタフェースの指定されたpublic
メンバフィールドをリフレクトするField
オブジェクトを返します。
clazz
- クラスのClass
オブジェクトname
- フィールド名
name
で指定されたこのクラスのField
オブジェクト
NoSuchFieldRuntimeException
- 指定された名前のフィールドが見つからない場合Class.getField(String)
public static Field getDeclaredField(Class<?> clazz, String name) throws NoSuchFieldRuntimeException
Class
オブジェクトが表すクラスまたはインタフェースの指定された宣言フィールドをリフレクトするField
オブジェクトを返します。
clazz
- クラスのClass
オブジェクトname
- フィールド名
name
で指定されたこのクラスのField
オブジェクト
NoSuchFieldRuntimeException
- 指定された名前のフィールドが見つからない場合Class.getDeclaredField(String)
public static Method getMethod(Class<?> clazz, String name, Class<?>... argTypes) throws NoSuchMethodRuntimeException
Class
オブジェクトが表すクラスまたはインタフェースの指定されたpublic
メンバメソッドをリフレクトするMethod
オブジェクトを返します。
clazz
- クラスのClass
オブジェクトname
- メソッドの名前argTypes
- パラメータのリスト
name
およびargTypes
と一致するMethod
オブジェクト
NoSuchMethodRuntimeException
- 一致するメソッドが見つからない場合Class.getMethod(String, Class[])
public static Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... argTypes) throws NoSuchMethodRuntimeException
Class
オブジェクトが表すクラスまたはインタフェースの指定されたメンバメソッドをリフレクトするMethod
オブジェクトを返します。
clazz
- クラスのClass
オブジェクトname
- メソッドの名前argTypes
- パラメータのリスト
name
およびargTypes
と一致するMethod
オブジェクト
NoSuchMethodRuntimeException
- 一致するメソッドが見つからない場合Class.getDeclaredMethod(String, Class[])
public static <T> T newInstance(Class<T> clazz) throws InstantiationRuntimeException, IllegalAccessRuntimeException
T
- Class
オブジェクトが表すクラスclazz
- クラスを表すClass
オブジェクト
InstantiationRuntimeException
- 基本となるコンストラクタを宣言するクラスがabstract
クラスを表す場合
IllegalAccessRuntimeException
- 実パラメータ数と仮パラメータ数が異なる場合、 プリミティブ引数のラップ解除変換が失敗した場合、 またはラップ解除後、
メソッド呼び出し変換によってパラメータ値を対応する仮パラメータ型に変換できない場合、
このコンストラクタが列挙型に関連している場合Constructor.newInstance(Object[])
public static <T> T newInstance(Constructor<T> constructor, Object... args) throws InstantiationRuntimeException, IllegalAccessRuntimeException
T
- コンストラクタの宣言クラスconstructor
- コンストラクタargs
- コンストラクタ呼び出しに引数として渡すオブジェクトの配列
InstantiationRuntimeException
- 基本となるコンストラクタを宣言するクラスがabstract
クラスを表す場合
IllegalAccessRuntimeException
- 実パラメータ数と仮パラメータ数が異なる場合、 プリミティブ引数のラップ解除変換が失敗した場合、 またはラップ解除後、
メソッド呼び出し変換によってパラメータ値を対応する仮パラメータ型に変換できない場合、
このコンストラクタが列挙型に関連している場合Constructor.newInstance(Object[])
public static <T> T getValue(Field field, Object target) throws IllegalAccessRuntimeException
Field
によって表されるフィールドの値を返します。
T
- フィールドの型field
- フィールドtarget
- 表現されるフィールド値の抽出元オブジェクト
obj
内で表現される値
IllegalAccessRuntimeException
- 基本となるフィールドにアクセスできない場合Field.get(Object)
public static <T> T getStaticValue(Field field) throws IllegalAccessRuntimeException
Field
によって表されるstatic
フィールドの値を返します。
T
- フィールドの型field
- フィールド
static
フィールドで表現される値
IllegalAccessRuntimeException
- 基本となるフィールドにアクセスできない場合Field.get(Object)
public static void setValue(Field field, Object target, Object value) throws IllegalAccessRuntimeException
Field
オブジェクトによって表される指定されたオブジェクト引数のフィールドを、指定された新しい値に設定します。
field
- フィールドtarget
- フィールドを変更するオブジェクトvalue
- 変更中のtarget
の新しいフィールド値
IllegalAccessRuntimeException
- 基本となるフィールドにアクセスできない場合Field.set(Object, Object)
public static void setStaticValue(Field field, Object value) throws IllegalAccessRuntimeException
Field
オブジェクトによって表されるstatic
フィールドを、指定された新しい値に設定します。
field
- フィールドvalue
- static
フィールドの新しい値
IllegalAccessRuntimeException
- 基本となるフィールドにアクセスできない場合Field.set(Object, Object)
public static <T> T invoke(Method method, Object target, Object... args) throws IllegalAccessRuntimeException, InvocationTargetRuntimeException
Method
オブジェクトによって表される基本となるメソッドを、指定したオブジェクトに対して指定したパラメータで呼び出します。
T
- メソッドの戻り値の型method
- メソッドtarget
- 基本となるメソッドの呼び出し元のオブジェクトargs
- メソッド呼び出しに使用される引数
args
を使用してobj
にディスパッチした結果
IllegalAccessRuntimeException
- このMethod
オブジェクトがJava言語アクセス制御を実施し、
基本となるメソッドにアクセスできない場合
InvocationTargetRuntimeException
- 基本となるメソッドが例外をスローする場合Method.invoke(Object, Object[])
public static <T> T invokeStatic(Method method, Object... args) throws IllegalAccessRuntimeException, InvocationTargetRuntimeException
Method
オブジェクトによって表される基本となるstatic
メソッドを、指定したパラメータで呼び出します。
T
- メソッドの戻り値の型method
- メソッドargs
- メソッド呼び出しに使用される引数
static
メソッドを、パラメータargs
を使用してディスパッチした結果
IllegalAccessRuntimeException
- このMethod
オブジェクトがJava言語アクセス制御を実施し、
基本となるメソッドにアクセスできない場合
InvocationTargetRuntimeException
- 基本となるメソッドが例外をスローする場合Method.invoke(Object, Object[])
public static Class<?> getElementTypeOfCollection(Type parameterizedCollection)
parameterizedCollection
- パラメタ化されたコレクションの型
public static Class<?> getElementTypeOfCollectionFromFieldType(Field field)
field
- フィールド
public static Class<?> getElementTypeOfCollectionFromParameterType(Method method, int parameterPosition)
method
- メソッドparameterPosition
- パラメタ化されたコレクションが宣言されているメソッド引数の位置
public static Class<?> getElementTypeOfCollectionFromReturnType(Method method)
method
- メソッド
public static Class<?> getElementTypeOfList(Type parameterizedList)
parameterizedList
- パラメタ化されたリストの型
public static Class<?> getElementTypeOfListFromFieldType(Field field)
field
- フィールド
public static Class<?> getElementTypeOfListFromParameterType(Method method, int parameterPosition)
method
- メソッドparameterPosition
- パラメタ化されたリストが宣言されているメソッド引数の位置
public static Class<?> getElementTypeOfListFromReturnType(Method method)
method
- メソッド
public static Class<?> getElementTypeOfSet(Type parameterizedSet)
parameterizedSet
- パラメタ化されたセットの型
public static Class<?> getElementTypeOfSetFromFieldType(Field field)
field
- フィールド
public static Class<?> getElementTypeOfSetFromParameterType(Method method, int parameterPosition)
method
- メソッドparameterPosition
- パラメタ化されたセットが宣言されているメソッド引数の位置
public static Class<?> getElementTypeOfSetFromReturnType(Method method)
method
- メソッド
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |