@Published(tag="architect") public final class ObjectUtil extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static java.util.List<java.lang.Class<? extends java.lang.RuntimeException>> |
createExceptionsClassList(java.util.List<java.lang.String> originalExceptions)
例外の名称のリストから例外クラスのリストを生成する。
指定されたList<String>の各要素を
Class<? extends RuntimeException>に変換し返却する。
例外クラスは、
originalExceptions の文字列クラス名の格納順にリストに格納されて返される。
originalExceptions が空の場合は、空のリストを返す。 |
static <T> T |
createInstance(java.lang.String className)
クラス名からインスタンスを生成する。
|
static java.lang.reflect.Method |
findMatchMethod(java.lang.Class<?> objectClass,
java.lang.String methodName,
java.lang.Class<?>... valueTypes)
指定したシグネチャにマッチするメソッドを検索する。
マッチするメソッドが見つからなかった場合は
null を返す。
マッチング条件は以下である。
methodName とメソッド名が一致していること
valueTypes と引数の数が一致していること
valueTypes と引数の型が一致していること。ただし、以下の場合は「同一の型」と見なす。
プリミティブ型とそのラッパー型とを比較した場合
valueTypes で指定した型とそのスーパークラスとを比較した場合
|
static java.util.List<java.lang.Class<?>> |
getAncestorClasses(java.lang.Class<?> clazz)
クラスの全ての祖先を取得する。
祖先のリストの並び順は、
clazz からの近さ順となる。
Object は取得結果リストに含まれない。そのため、 clazz がObject 以外を継承していないクラスである場合、空のリストを返す。 |
static java.lang.reflect.Method |
getGetterMethod(java.lang.Class<?> targetClass,
java.lang.String propertyName)
getterメソッドを検索する。
|
static java.lang.String |
getGetterMethodName(java.lang.String propertyName)
プロパティ名からgetterメソッド名を取得する。
|
static java.util.List<java.lang.reflect.Method> |
getGetterMethods(java.lang.Class<?> clazz)
クラスにあるgetterのリストを取得する。
Object.getClass() は取得対象から除く。
getterが一つも定義されていない場合は空のリストを返す。 |
static java.lang.Object |
getProperty(java.lang.Object object,
java.lang.String propertyName)
オブジェクトからプロパティの値を取得する。
|
static java.lang.Object |
getPropertyIfExists(java.lang.Object object,
java.lang.String propertyName)
オブジェクトに、指定したプロパティが存在する場合に値を取得する。
プロパティが存在しなかった場合は null を返す。 |
static java.lang.String |
getPropertyNameFromGetter(java.lang.reflect.Method method)
getterメソッドからプロパティ名を取得する。
|
static java.lang.String |
getPropertyNameFromSetter(java.lang.reflect.Method method)
setterメソッドからプロパティ名を取得する。
|
static java.lang.Class<?> |
getPropertyType(java.lang.Class<?> clazz,
java.lang.String propertyName)
プロパティの型を取得する。
setterが定義されているプロパティのみ取得可能である。
該当するプロパティが見つからない場合は
null を返す。 |
static java.lang.reflect.Method |
getSetterMethod(java.lang.Class<?> targetClass,
java.lang.String propertyName)
setterメソッドを検索する。
|
static java.lang.String |
getSetterMethodName(java.lang.String propertyName)
プロパティ名からsetterメソッド名を取得する。
|
static java.util.List<java.lang.reflect.Method> |
getSetterMethods(java.lang.Class<?> clazz)
clazz に定義されたsetterのリストを取得する。
setterが一つも定義されていない場合は空のリストを返す。 |
static java.util.List<java.lang.String> |
getWritablePropertyNames(java.lang.Class<?> clazz)
clazz に定義されたプロパティの名称リストを取得する。
setterが定義されているプロパティのみが対象となる。
clazz にsetterが定義されたプロパティがない場合、空のリストを返す。 |
static void |
setProperty(java.lang.Object obj,
java.lang.String propertyName,
java.lang.Object value)
オブジェクトのプロパティに値を設定する。
本メソッドでは、対象プロパティがstaticの場合でも値は設定される。
|
static void |
setProperty(java.lang.Object obj,
java.lang.String propertyName,
java.lang.Object value,
boolean allowStatic)
オブジェクトのプロパティに値を設定する。
本メソッドでは、対象プロパティがstaticの場合に値を設定するかどうかを引数で制御できる。
引数allowStaticが
false (許容しない)かつ対象プロパティがstaticである場合、
例外が発生する。 |
public static <T> T createInstance(java.lang.String className)
T
- 型引数className
- 完全修飾クラス名java.lang.IllegalArgumentException
- インスタンスの生成に失敗した場合public static void setProperty(java.lang.Object obj, java.lang.String propertyName, java.lang.Object value)
obj
- 対象のオブジェクトpropertyName
- プロパティ名value
- 設定する値(NOT null
)java.lang.RuntimeException
- 対象プロパティにsetterが定義されていない場合か、
対象プロパティのsetterが対象プロパティの型かそのサブクラスを引数にとらない場合public static void setProperty(java.lang.Object obj, java.lang.String propertyName, java.lang.Object value, boolean allowStatic)
false
(許容しない)かつ対象プロパティがstaticである場合、
例外が発生する。obj
- 対象のオブジェクトpropertyName
- プロパティ名value
- 設定する値(NOT null
)allowStatic
- staticなプロパティに対する値の設定を許容するかどうかjava.lang.RuntimeException
- 対象プロパティにsetterが定義されていない場合か、
対象プロパティのsetterが対象プロパティの型かそのサブクラスを引数にとらない場合IllegalConfigurationException
- 引数allowStaticがfalse
(許容しない)かつ対象プロパティがstaticである場合。
(システムプロパティやweb.xml等の設定誤り)public static java.lang.String getSetterMethodName(java.lang.String propertyName)
propertyName
- プロパティ名public static java.lang.reflect.Method findMatchMethod(java.lang.Class<?> objectClass, java.lang.String methodName, java.lang.Class<?>... valueTypes)
null
を返す。
マッチング条件は以下である。
methodName
とメソッド名が一致していることvalueTypes
と引数の数が一致していることvalueTypes
と引数の型が一致していること。ただし、以下の場合は「同一の型」と見なす。
valueTypes
で指定した型とそのスーパークラスとを比較した場合objectClass
- 検索対象のクラスmethodName
- メソッド名valueTypes
- 引数の型リスト(NOT null
)。
引数の型の他、そのサブクラスでもマッチする。
引数を取らないメソッドを検索する場合は、空の配列を引き渡す。public static java.util.List<java.lang.Class<?>> getAncestorClasses(java.lang.Class<?> clazz)
clazz
からの近さ順となる。
Object
は取得結果リストに含まれない。clazz
がObject
以外を継承していないクラスである場合、空のリストを返す。clazz
- 祖先を取得するクラスpublic static java.lang.Class<?> getPropertyType(java.lang.Class<?> clazz, java.lang.String propertyName)
null
を返す。clazz
- プロパティの型を取得するクラスpropertyName
- プロパティ名public static java.util.List<java.lang.String> getWritablePropertyNames(java.lang.Class<?> clazz)
clazz
に定義されたプロパティの名称リストを取得する。
setterが定義されているプロパティのみが対象となる。
clazz
にsetterが定義されたプロパティがない場合、空のリストを返す。clazz
- 取得対象のクラスclazz
に定義されたプロパティの名称リスト(setterが定義されているプロパティのみ取得する)public static java.lang.String getPropertyNameFromSetter(java.lang.reflect.Method method)
method
- セッタメソッドjava.lang.IllegalArgumentException
- method
の名称が"set"で開始していない場合public static java.util.List<java.lang.reflect.Method> getSetterMethods(java.lang.Class<?> clazz)
clazz
に定義されたsetterのリストを取得する。
setterが一つも定義されていない場合は空のリストを返す。clazz
- 取得対象のクラスclazz
に定義されたセッタのリストpublic static java.lang.reflect.Method getSetterMethod(java.lang.Class<?> targetClass, java.lang.String propertyName)
targetClass
- ターゲットのクラスpropertyName
- プロパティ名java.lang.RuntimeException
- propertyName
に対応するsetterがない場合public static java.lang.reflect.Method getGetterMethod(java.lang.Class<?> targetClass, java.lang.String propertyName)
targetClass
- ターゲットのクラスpropertyName
- プロパティ名java.lang.RuntimeException
- propertyName
に対応するgetterがない場合public static java.lang.String getGetterMethodName(java.lang.String propertyName)
propertyName
- プロパティ名java.lang.IllegalArgumentException
- propertyName
がnull
か空文字である場合public static java.lang.String getPropertyNameFromGetter(java.lang.reflect.Method method)
method
- getterメソッドjava.lang.IllegalArgumentException
- method
の名前が"get"で開始していない場合public static java.util.List<java.lang.reflect.Method> getGetterMethods(java.lang.Class<?> clazz)
Object.getClass()
は取得対象から除く。
getterが一つも定義されていない場合は空のリストを返す。clazz
- 取得対象のクラスpublic static java.lang.Object getProperty(java.lang.Object object, java.lang.String propertyName)
object
- Map
、またはプロパティ名のgetterを備えたオブジェクトpropertyName
- プロパティ名java.lang.IllegalArgumentException
- object
がnullである場合propertyName
がnullか空文字である場合propertyName
に対応する、getterメソッドが定義されたプロパティがない場合public static java.lang.Object getPropertyIfExists(java.lang.Object object, java.lang.String propertyName)
null
を返す。object
- Map
またはプロパティ名のgetterを備えたオブジェクトpropertyName
- プロパティ名object
がnullである場合propertyName
がnull
か空文字である場合public static java.util.List<java.lang.Class<? extends java.lang.RuntimeException>> createExceptionsClassList(java.util.List<java.lang.String> originalExceptions)
originalExceptions
の文字列クラス名の格納順にリストに格納されて返される。
originalExceptions
が空の場合は、空のリストを返す。originalExceptions
- 例外クラス名リスト。(List<String>)java.lang.RuntimeException
- 要素内の文字列クラス名が、RuntimeExceptionのサブクラス以外の場合