public class GenericPropertyUtil extends Object
JavaBean
のプロパティの
Generics
を扱うためのユーティリティクラス。コンストラクタと説明 |
---|
GenericPropertyUtil() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected static Method |
getMethod(Object bean,
String name)
JavaBean のプロパティの取得メソッドを
取得する。 |
static Class |
resolveCollectionType(Object bean,
String name)
JavaBean の
Collection 型プロパティの要素の型を取得する。 |
protected static Class |
resolveType(Class genericClass,
Class clazz,
Type type,
int index)
フィールド、または、メソッドの情報を元に
Generics 型で指定された型を取得する。 |
static Class |
resolveType(Object bean,
String name,
Class genericClass,
int index)
JavaBean の
Generics 型プロパティで指定された型を取得する。 |
public static Class resolveCollectionType(Object bean, String name) throws IllegalArgumentException, IllegalStateException
JavaBean
の
Collection
型プロパティの要素の型を取得する。
public class Bean {
private List<String> list;
public List<String> getList() {
return this.list;
}
}
上記のようなBean
に対して、以下のように使用すると、
String.classを取得できる。
Bean bean = new Bean();
Class elementType =
GenericCollectionUtil.resolveCollectionType(
bean, "list");
bean
- JavaBean
インスタンス。name
- Collection
型プロパティの名前。Collection
の要素の型。
特定できない場合はObject
型が返却される。IllegalArgumentException
- 引数bean
が
null
の場合。引数name
が
null
、空文字、空白文字列の場合。
JavaBean
のプロパティの
取得メソッドを取得できなかった場合IllegalStateException
- 指定されたプロパティがCollection
実装クラス
ではない場合。public static Class resolveType(Object bean, String name, Class genericClass, int index) throws IllegalArgumentException, IllegalStateException
JavaBean
の
Generics
型プロパティで指定された型を取得する。
public class Bean {
private Map<String, Boolean> map;
public Map<String, Boolean> getMap() {
return this.map;
}
}
上記のようなBean
に対して、以下のように使用すると、
String.classを取得できる。
Bean bean = new Bean();
Class keyType =
GenericCollectionUtil.resolveType(
bean, "map", Map.class, 0);
bean
- JavaBean
インスタンス。name
- Generics
型プロパティの名前。genericClass
- Generics
型プロパティの
型定義を行っているクラス。index
- 型パラメータの宣言順序。Generics
型プロパティで指定された型。
特定できない場合はObject
型が返却される。IllegalArgumentException
- 引数bean
が
null
の場合。引数name
が
null
、空文字、空白文字列の場合。
引数genericClass
がnull
の場合。
引数index
が0
より小さい、または、
宣言された型パラメータ数以上の場合。
JavaBean
のプロパティの
取得メソッドを取得できなかった場合IllegalStateException
- 型パラメータがWildCardType
である場合。protected static Method getMethod(Object bean, String name) throws IllegalArgumentException
JavaBean
のプロパティの取得メソッドを
取得する。bean
- JavaBean
インスタンス。name
- Generics
型プロパティの名前。JavaBean
に定義されたプロパティの取得メソッド。IllegalArgumentException
- JavaBean
のプロパティの
取得メソッドを取得できなかった場合。protected static Class resolveType(Class genericClass, Class clazz, Type type, int index) throws IllegalArgumentException, IllegalStateException
Generics
型で指定された型を取得する。genericClass
- Generics
型プロパティの
型定義を行っているクラス。clazz
- 具体的な型パラメータを指定したクラス。type
- 具体的な型パラメータを指定したクラスのインスタンスの
Type
インスタンス。index
- 型パラメータの宣言順序。Generics
型で指定された型。
特定できない場合はObject
型が返却される。IllegalArgumentException
- 引数genericClass
が
null
の場合。
引数clazz
がnull
の場合。
引数index
が0
より小さい、または、
宣言された型パラメータ数以上の場合。IllegalStateException
- 型パラメータがWildCardType
である場合。Copyright © 2014. All Rights Reserved.