@Published public final class BeanUtil extends java.lang.Object
| 修飾子とタイプ | メソッドと説明 |
|---|---|
static <SRC,DEST> DEST |
copy(SRC srcBean,
DEST destBean)
BeanからBeanに値をコピーする。
|
static <SRC,DEST> DEST |
copyExcludes(SRC srcBean,
DEST destBean,
java.lang.String... excludes)
BeanからBeanに、指定されたプロパティ以外をコピーする。
|
static <SRC,DEST> DEST |
copyExcludesNull(SRC srcBean,
DEST destBean)
BeanからBeanに値をコピーする。
|
static <SRC,DEST> DEST |
copyIncludes(SRC srcBean,
DEST destBean,
java.lang.String... includes)
BeanからBeanに、指定されたプロパティをコピーする。
|
protected static <SRC,DEST> DEST |
copyInner(SRC srcBean,
DEST destBean,
boolean excludesNull,
java.lang.String... excludesProperties)
BeanからBeanに値をコピーする。
|
static <T> T |
createAndCopy(java.lang.Class<T> beanClass,
java.util.Map<java.lang.String,?> map)
MapからBeanを生成する。 |
static <T> T |
createAndCopy(java.lang.Class<T> beanClass,
java.lang.Object srcBean)
Java Beansからプロパティをコピーして、別のBeanを作成する。
|
static <T> T |
createAndCopyExcludes(java.lang.Class<T> beanClass,
java.util.Map<java.lang.String,?> map,
java.lang.String... excludes)
Mapから指定されたプロパティ以外をコピーしてBeanを生成する。 |
static <T> T |
createAndCopyExcludes(java.lang.Class<T> beanClass,
java.lang.Object srcBean,
java.lang.String... excludes)
Java Beansから指定されたプロパティ以外をコピーして、別のBeanを作成する。
|
static <T> T |
createAndCopyIncludes(java.lang.Class<T> beanClass,
java.util.Map<java.lang.String,?> map,
java.lang.String... includes)
Mapから、指定したプロパティのみをコピーしたBeanを生成する。 |
static <T> T |
createAndCopyIncludes(java.lang.Class<T> beanClass,
java.lang.Object srcBean,
java.lang.String... includes)
Java Beansから指定されたプロパティをコピーして、別のBeanを作成する。
|
static <SRC> java.util.Map<java.lang.String,java.lang.Object> |
createMapAndCopy(SRC srcBean)
BeanからMapにプロパティの値をコピーする。
|
static <SRC> java.util.Map<java.lang.String,java.lang.Object> |
createMapAndCopyExcludes(SRC srcBean,
java.lang.String... excludeProperties)
BeanからMapにプロパティの値をコピーする。
|
static <SRC> java.util.Map<java.lang.String,java.lang.Object> |
createMapAndCopyIncludes(SRC srcBean,
java.lang.String... includesProperties)
BeanからMapに指定されたプロパティの値をコピーする。
|
static java.lang.Object |
getProperty(java.lang.Object bean,
java.lang.String propertyName)
指定したオブジェクトから、特定のプロパティの値を取得する。
|
static java.lang.Object |
getProperty(java.lang.Object bean,
java.lang.String propertyName,
java.lang.Class<?> type)
指定したオブジェクトのプロパティの値を、指定した型に変換して取得する。
|
static java.beans.PropertyDescriptor |
getPropertyDescriptor(java.lang.Class<?> beanClass,
java.lang.String propertyName)
指定したクラスから、特定のプロパティの
PropertyDescriptor を取得する。 |
static java.beans.PropertyDescriptor[] |
getPropertyDescriptors(java.lang.Class<?> beanClass)
指定したクラスに属する全てのプロパティの
PropertyDescriptor を取得する。 |
static void |
setProperty(java.lang.Object bean,
java.lang.String propertyName,
java.lang.Object propertyValue)
指定したオブジェクトのプロパティに値を登録する。
|
public static java.beans.PropertyDescriptor[] getPropertyDescriptors(java.lang.Class<?> beanClass)
PropertyDescriptor を取得する。
ただし、classプロパティは取得対象外となる。beanClass - プロパティを取得したいクラスPropertyDescriptorBeansException - プロパティの取得に失敗した場合。public static java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.Class<?> beanClass,
java.lang.String propertyName)
PropertyDescriptor を取得する。beanClass - プロパティを取得したいクラスpropertyName - 取得したいプロパティ名BeansException - propertyName に対応するプロパティが定義されていない場合。public static java.lang.Object getProperty(java.lang.Object bean,
java.lang.String propertyName)
propertyNameには、beanのトップレベル要素のみ指定可能である。
// ----------サンプルで使用するBean----------
public class SampleBean {
private String stringProp;
private List<String> listProp;
private String[] arrayProp;
private NestedBean nestedBean;
// setter及びgetterは省略
}
public class NestedBean {
private String nestedStringProp;
// setter及びgetterは省略
}
// ----------実装例----------
// 問題のないコード1
String stringProp = BeanUtil.getProperty(sampleBean, "stringProp");
// 問題のないコード2
String stringProp = BeanUtil.getProperty(sampleBean.nestedBean, "nestedStringProp");
// 以下のコードは動作しない
String nestedStringProp = BeanUtil.getProperty(sampleBean, "nestedBean.nestedStringProp");
bean - プロパティの値を取得したいBeanオブジェクトpropertyName - 取得したいプロパティ名BeansException - propertyName に対応するプロパティが定義されていない場合。public static java.lang.Object getProperty(java.lang.Object bean,
java.lang.String propertyName,
java.lang.Class<?> type)
ConversionUtilを参照。
propertyNameの指定方法についてはgetProperty(Object, String)を参照。bean - プロパティの値を取得したいBeanオブジェクトpropertyName - 取得したいプロパティの名称type - 変換したい型 (nullを指定した場合は変換を行わず、プロパティの値をそのまま返す。)typeに変換したオブジェクトBeansException - propertyName に対応するプロパティが定義されていない場合。public static void setProperty(java.lang.Object bean,
java.lang.String propertyName,
java.lang.Object propertyValue)
propertyValueがnullの場合は、例外の送出やログ出力は行わずに、対象プロパティの値はnullになる。
プロパティの指定方法propertyNameにはプロパティ名を指定する。
List型・配列型のプロパティでは、"プロパティ名[インデックス]"という形式で要素番号を指定して値を登録できる。
ネストしたプロパティを指定することも可能である。ネストの深さに制限はない。
ネストの親となるプロパティがnullである場合は、デフォルトコンストラクタを起動し
インスタンスを生成してから値を格納する。
実装例
// ----------サンプルで使用するBean----------
public class SampleBean {
private String stringProp;
private List<String> listProp;
private String[] arrayProp;
private NestedBean nestedBean;
// setter及びgetterは省略
}
public class NestedBean {
private String nestedStringProp;
// setter及びgetterは省略
}
// ----------実装例----------
SampleBean sampleBean = new SampleBean();
// stringPropプロパティに"value"を登録
BeanUtil.setProperty(sampleBean,"stringProp", "value");
// stringPropプロパティにnullを登録。stringPropはnullとなる
BeanUtil.setProperty(sampleBean,"stringProp", null);
// listPropPropプロパティの要素番号0の位置に"list_value"を登録
BeanUtil.setProperty(sampleBean,"listProp[0]", "list_value");
// 配列型のプロパティの要素番号0の位置に"array_value"を登録
// 十分な要素数が自動で確保される
BeanUtil.setProperty(sampleBean, "arrayProp[0]", "array_value");
// nestedBeanプロパティのnestedStringPropプロパティに"nested_value"を登録
BeanUtil.setProperty(sampleBean, "nestedBean.nestedStringProp", "nested_value");
bean - 値を登録したいBeanオブジェクトpropertyName - 値を登録したいプロパティ名propertyValue - 登録したい値BeansException - propertyNameに対応するプロパティが定義されていない場合public static <T> T createAndCopy(java.lang.Class<T> beanClass,
java.util.Map<java.lang.String,?> map)
MapからBeanを生成する。
mapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。
mapにvalueがnullのエントリがある場合、対応するプロパティの値はnullとなる。
対象のプロパティにsetterが定義されていない場合はなにもしない。
プロパティの指定方法mapに格納するエントリのキー値には、値を登録したいプロパティ名を指定する。
List型・配列型のプロパティでは、"プロパティ名[インデックス]"という形式で要素番号を指定して値を登録できる。
ネストしたプロパティを指定することも可能である。ネストの深さに制限はない。
ネストの親となるプロパティがnullである場合は、インスタンスを生成してから値を登録する。
実装例
// ----------サンプルで使用するBean----------
public class SampleBean {
private String stringProp;
private List<String> listProp;
private String[] arrayProp;
private NestedBean nestedBean;
// setter及びgetterは省略
}
public class NestedBean {
private String nestedStringProp;
// setter及びgetterは省略
}
// ----------実装例----------
// 格納したいプロパティ名をkeyに、値をvalueにもつMapを作成する
Map<String,Object> map = new HashMap();
// String型のプロパティに"value"を登録
map.put("stringProp", "value");
// stringPropプロパティにnullを登録。stringPropはnullとなる。
map.put("stringProp", null);
// List型のプロパティの要素番号0の位置に"list_value"を登録
map.put("listProp[0]", "list_value");
// 配列型のプロパティの要素番号0の位置に"array_value"を登録
// 十分な要素数が自動で確保される
map.put("arrayProp[0]", "array_value");
// ネストしたオブジェクトのプロパティに"nested_value"を登録
map.put("nestedBean.nestedStringProp", "nested_value");
SampleBean sampleBean = BeanUtil.createAndCopy(SampleBean.class,map);
T - 型引数beanClass - 生成したいBeanクラスmap - JavaBeansのプロパティ名をエントリーのキー
プロパティの値をエントリーの値とするMapBeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、
beanClassのコンストラクタ実行時に問題が発生した場合。public static <T> T createAndCopyIncludes(java.lang.Class<T> beanClass,
java.util.Map<java.lang.String,?> map,
java.lang.String... includes)
Mapから、指定したプロパティのみをコピーしたBeanを生成する。
mapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。
mapでvalueがnullであるプロパティの値はnullになる。例外の送出やログ出力は行わない。
対象のプロパティにsetterが定義されていない場合はなにもしない。
プロパティの指定方法についてはcreateAndCopy(Class, Map)を参照。T - 型引数beanClass - 生成したいBeanクラスmap - JavaBeansのプロパティ名をエントリーのキー
プロパティの値をエントリーの値とするMapincludes - コピー対象のプロパティ名BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、
beanClassのコンストラクタ実行時に問題が発生した場合。public static <T> T createAndCopyExcludes(java.lang.Class<T> beanClass,
java.util.Map<java.lang.String,?> map,
java.lang.String... excludes)
Mapから指定されたプロパティ以外をコピーしてBeanを生成する。
mapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。
mapでvalueがnullであるプロパティの値はnullになる。例外の送出やログ出力は行わない。
対象のプロパティにsetterが定義されていない場合はなにもしない。
プロパティの指定方法についてはcreateAndCopy(Class, Map)を参照。T - 型引数beanClass - 生成したいBeanクラスmap - JavaBeansのプロパティ名をエントリーのキー
プロパティの値をエントリーの値とするMapexcludes - コピー対象外のプロパティ名BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、
beanClassのコンストラクタ実行時に問題が発生した場合。public static <T> T createAndCopy(java.lang.Class<T> beanClass,
java.lang.Object srcBean)
srcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。T - 型引数beanClass - コピー先のBeanクラスsrcBean - コピー元のBeanBeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、
beanClassのコンストラクタの実行中に問題が発生した場合。public static <T> T createAndCopyIncludes(java.lang.Class<T> beanClass,
java.lang.Object srcBean,
java.lang.String... includes)
srcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。T - 型引数beanClass - コピー先のBeanクラスsrcBean - コピー元のBeanincludes - コピー対象のプロパティ名BeansException - beanClassにデフォルトコンストラクタが定義されていない場合や、
beanClassのデフォルトコンストラクタの実行中に問題が発生した場合。public static <T> T createAndCopyExcludes(java.lang.Class<T> beanClass,
java.lang.Object srcBean,
java.lang.String... excludes)
srcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。
プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。
srcBeanに存在し、beanClassに存在しないプロパティはコピーされない。T - 型引数beanClass - コピー先のBeanクラスsrcBean - コピー元のBeanexcludes - コピー対象外のプロパティ名BeansException - beanClassのデフォルトコンストラクタの実行中に問題が発生した場合や、
beanClassのプロパティのデフォルトコンストラクタの実行中に問題が発生した場合。protected static <SRC,DEST> DEST copyInner(SRC srcBean,
DEST destBean,
boolean excludesNull,
java.lang.String... excludesProperties)
SRC - コピー元のBeanの型DEST - コピー先のBeanの型srcBean - コピー元のBeanオブジェクトdestBean - コピー先のBeanオブジェクトexcludesNull - nullプロパティを対象外とするか?excludesProperties - コピー対象外のプロパティ名public static <SRC,DEST> DEST copy(SRC srcBean,
DEST destBean)
srcBeanに定義されたプロパティをベースに実行される。
srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。SRC - コピー元のBeanの型DEST - コピー先のBeanの型srcBean - コピー元のBeanオブジェクトdestBean - コピー先のBeanオブジェクトBeansException - destBeanのプロパティのインスタンス生成に失敗した場合public static <SRC,DEST> DEST copyExcludesNull(SRC srcBean,
DEST destBean)
srcBeanに定義されたプロパティをベースに実行される。
srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。SRC - コピー元Beanの型DEST - コピー先のBeanの型srcBean - コピー元のBeanオブジェクトdestBean - コピー先のBeanオブジェクトBeansException - destBeanのプロパティのインスタンス生成に失敗した場合public static <SRC,DEST> DEST copyIncludes(SRC srcBean,
DEST destBean,
java.lang.String... includes)
srcBeanに定義されたプロパティをベースに実行される。
srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。
includesには、srcBeanのトップレベル要素のみ指定可能である。
それ以外を指定した場合はコピーされない。
// aaa.bbbはコピーされない
SampleBean copiedSampleBean = BeanUtil.createAndCopyIncludes(SampleBean.class, sampleBean, "aaa.bbb");
SRC - コピー元Beanの型DEST - コピー先のBeanの型srcBean - コピー元のBeanオブジェクトdestBean - コピー先のBeanオブジェクトincludes - コピー対象のプロパティ名BeansException - destBeanのプロパティのインスタンス生成に失敗した場合public static <SRC,DEST> DEST copyExcludes(SRC srcBean,
DEST destBean,
java.lang.String... excludes)
srcBeanに定義されたプロパティをベースに実行される。
srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。SRC - コピー元Beanの型DEST - コピー先のBeanの型srcBean - コピー元のBeanオブジェクトdestBean - コピー先のBeanオブジェクトexcludes - コピー対象外のプロパティ名BeansException - destBeanのプロパティのインスタンス生成に失敗した場合public static <SRC> java.util.Map<java.lang.String,java.lang.Object> createMapAndCopy(SRC srcBean)
Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。
SRC - Beanの型srcBean - Beanpublic static <SRC> java.util.Map<java.lang.String,java.lang.Object> createMapAndCopyExcludes(SRC srcBean,
java.lang.String... excludeProperties)
Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。
除外対象のプロパティ名が指定された場合は、そのプロパティがコピー対象から除外される。
SRC - Beanの型srcBean - BeanexcludeProperties - 除外対象のプロパティ名public static <SRC> java.util.Map<java.lang.String,java.lang.Object> createMapAndCopyIncludes(SRC srcBean,
java.lang.String... includesProperties)
Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。
コピー対象のプロパティ名として指定できるのは、トップ階層のBeanのプロパティ名となる。 このため、階層構造で子階層のBeanがinclude指定されていた場合、子階層のBeanのプロパティは全てコピーされる。
SRC - Beanの型srcBean - BeanincludesProperties - コピー対象のプロパティ名のリスト