Class BeanUtil
レコードはJavaBeanではないものの、JavaBeansと同様に取り扱えると便利なため、 本ユーティリティにてレコードに関する操作もサポートしている。
- Author:
- kawasima, tajima
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> voidcopy(Class<? extends T> beanClass, T bean, Map<String, ?> map, CopyOptions copyOptions) MapからBeanインスタンスへコピーを行う。static <SRC,DEST> DEST copy(SRC srcBean, DEST destBean) BeanもしくはレコードからBeanに値をコピーする。static <SRC,DEST> DEST copy(SRC srcBean, DEST destBean, CopyOptions copyOptions) BeanもしくはレコードからBeanに値をコピーする。static <SRC,DEST> DEST copyExcludes(SRC srcBean, DEST destBean, String... excludes) BeanもしくはレコードからBeanに、指定されたプロパティ以外をコピーする。static <SRC,DEST> DEST copyExcludesNull(SRC srcBean, DEST destBean) BeanもしくはレコードからBeanに値をコピーする。ただしnullのプロパティはコピーしない。static <SRC,DEST> DEST copyIncludes(SRC srcBean, DEST destBean, String... includes) BeanもしくはレコードからBeanに、指定されたプロパティをコピーする。static <T> TcreateAndCopy(Class<T> beanClass, Object srcBean) Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。static <T> TcreateAndCopy(Class<T> beanClass, Object srcBean, CopyOptions copyOptions) Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。static <T> TcreateAndCopy(Class<T> beanClass, Map<String, ?> map) MapからBeanもしくはレコードを生成する。static <T> TcreateAndCopy(Class<T> beanClass, Map<String, ?> map, CopyOptions copyOptions) MapからBeanもしくはレコードを生成する。static <T> TcreateAndCopyExcludes(Class<T> beanClass, Object srcBean, String... excludes) Java Beansから指定されたプロパティ以外をコピーして、別のBeanを作成する。static <T> TcreateAndCopyExcludes(Class<T> beanClass, Map<String, ?> map, String... excludes) Mapから指定されたプロパティ以外をコピーしてBeanもしくはレコードを生成する。static <T> TcreateAndCopyIncludes(Class<T> beanClass, Object srcBean, String... includes) Java Beansもしくはレコードから指定されたプロパティをコピーして、別のBeanを作成する。static <T> TcreateAndCopyIncludes(Class<T> beanClass, Map<String, ?> map, String... includes) Mapから、指定したプロパティのみをコピーしたBeanもしくはレコードを生成する。createMapAndCopy(SRC srcBean) BeanもしくはレコードからMapにプロパティの値をコピーする。createMapAndCopy(SRC srcBean, CopyOptions copyOptions) BeanもしくはレコードからMapにプロパティの値をコピーする。createMapAndCopyExcludes(SRC srcBean, String... excludeProperties) BeanもしくはレコードからMapにプロパティの値をコピーする。createMapAndCopyIncludes(SRC srcBean, String... includesProperties) BeanもしくはレコードからMapに指定されたプロパティの値をコピーする。static ObjectgetProperty(Object bean, String propertyName) 指定したJavaBeansオブジェクトもしくはレコードから、特定のプロパティの値を取得する。static ObjectgetProperty(Object bean, String propertyName, Class<?> type) 指定したJavaBeansオブジェクトもしくはレコードのプロパティの値を、指定した型に変換して取得する。static PropertyDescriptorgetPropertyDescriptor(Class<?> beanClass, String propertyName) 指定したクラスから、特定のプロパティのPropertyDescriptorを取得する。static PropertyDescriptor[]getPropertyDescriptors(Class<?> beanClass) 指定したクラスに属する全てのプロパティのPropertyDescriptorを取得する。static voidsetProperty(Object bean, String propertyName, Object propertyValue) 指定したJavaBeansオブジェクトのプロパティに値を登録する。
-
Method Details
-
getPropertyDescriptors
指定したクラスに属する全てのプロパティのPropertyDescriptorを取得する。ただし、classプロパティは取得対象外となる。
本メソッドの引数にレコードクラスを指定した場合、実行時例外が送出される。
- Parameters:
beanClass- プロパティを取得したいクラス- Returns:
- PropertyDescriptor[] 全てのプロパティの
PropertyDescriptor - Throws:
BeansException- プロパティの取得に失敗した場合。IllegalArgumentException- 引数のbeanClassがレコードの場合
-
getPropertyDescriptor
指定したクラスから、特定のプロパティのPropertyDescriptorを取得する。本メソッドの引数にレコードクラスを指定した場合、実行時例外が送出される。
- Parameters:
beanClass- プロパティを取得したいクラスpropertyName- 取得したいプロパティ名- Returns:
- PropertyDescriptor 取得したプロパティ
- Throws:
BeansException-propertyNameに対応するプロパティが定義されていない場合。IllegalArgumentException- 引数のbeanClassがレコードの場合
-
getProperty
指定したJavaBeansオブジェクトもしくはレコードから、特定のプロパティの値を取得する。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");- Parameters:
bean- プロパティの値を取得したいBeanオブジェクトもしくはレコードpropertyName- 取得したいプロパティ名- Returns:
- Object オブジェクトから取得したプロパティの値
- Throws:
BeansException-propertyNameに対応するプロパティが定義されていない場合。
-
getProperty
指定したJavaBeansオブジェクトもしくはレコードのプロパティの値を、指定した型に変換して取得する。 型変換の仕様はConversionUtilを参照。propertyNameの指定方法についてはgetProperty(Object, String)を参照。- Parameters:
bean- プロパティの値を取得したいBeanオブジェクトもしくはレコードpropertyName- 取得したいプロパティの名称type- 変換したい型 (nullを指定した場合は変換を行わず、プロパティの値をそのまま返す。)- Returns:
- Object 取得したプロパティを
typeに変換したオブジェクト - Throws:
BeansException-propertyNameに対応するプロパティが定義されていない場合。
-
setProperty
指定したJavaBeansオブジェクトのプロパティに値を登録する。 対象のプロパティにsetterが定義されていない場合はなにもしない。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がレコードの場合、実行時例外が送出される。- Parameters:
bean- 値を登録したいBeanオブジェクトpropertyName- 値を登録したいプロパティ名propertyValue- 登録したい値- Throws:
BeansException-propertyNameに対応するプロパティが定義されていない場合- List型・配列型以外のプロパティに、"プロパティ名[インデックス]"という形式で指定した場合
- ネストの親となるプロパティのインスタンス生成に失敗した場合
IllegalArgumentException- 引数のbeanがレコードの場合
-
createAndCopy
MapからBeanもしくはレコードを生成する。 生成対象がBeanであり、かつmapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。 生成対象がレコードであり、かつmapがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。mapにvalueがnullのエントリがある場合、対応するプロパティの値はnullとなる。 生成対象がBeanで、かつ対象のプロパティに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);- Type Parameters:
T- 型引数- Parameters:
beanClass- 生成したいBeanクラスmap- JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMapcopyOptions- コピーの設定- Returns:
- プロパティに値が登録されたBeanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのコンストラクタ実行時に問題が発生した場合。
-
copy
public static <T> void copy(Class<? extends T> beanClass, T bean, Map<String, ?> map, CopyOptions copyOptions) MapからBeanインスタンスへコピーを行う。生成済みのインスタンスにコピーを行う点以外は、
createAndCopy(Class, Map, CopyOptions)と同じ動作である。- Type Parameters:
T- 型引数- Parameters:
beanClass- 移送先BeanのClassbean- 移送先Beanインスタンスmap- JavaBeansのプロパティ名をエントリーのキー、プロパティの値をエントリーの値とする、移送元のMapcopyOptions- コピーの設定- Throws:
IllegalArgumentException- 引数のbeanClassがレコードクラスの場合
-
createAndCopy
MapからBeanもしくはレコードを生成する。内部的には空の
CopyOptionsを渡してcreateAndCopy(Class, Map, CopyOptions)を呼び出している。- Type Parameters:
T- 型引数- Parameters:
beanClass- 生成したいBeanクラスmap- JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMap- Returns:
- プロパティに値が登録されたBeanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのコンストラクタ実行時に問題が発生した場合。
-
createAndCopyIncludes
public static <T> T createAndCopyIncludes(Class<T> beanClass, Map<String, ?> map, String... includes) Mapから、指定したプロパティのみをコピーしたBeanもしくはレコードを生成する。 生成対象がBeanであり、かつmapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。 生成対象がレコードであり、かつmapがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。mapでvalueがnullであるプロパティの値はnullになる。例外の送出やログ出力は行わない。 生成対象がBeanで、かつ対象のプロパティにsetterが定義されていない場合はなにもしない。 プロパティの指定方法についてはcreateAndCopy(Class, Map)を参照。- Type Parameters:
T- 型引数- Parameters:
beanClass- 生成したいBeanクラス、もしくはレコードクラスmap- JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMapincludes- コピー対象のプロパティ名- Returns:
- Beanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのコンストラクタ実行時に問題が発生した場合。
-
createAndCopyExcludes
public static <T> T createAndCopyExcludes(Class<T> beanClass, Map<String, ?> map, String... excludes) Mapから指定されたプロパティ以外をコピーしてBeanもしくはレコードを生成する。 生成対象がBeanであり、かつmapがnullである場合は、デフォルトコンストラクタでbeanClassを生成して返却する。 生成対象がレコードであり、かつmapがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。 生成対象がBeanで、対象のプロパティにsetterが定義されていない場合はなにもしない。 プロパティの指定方法についてはcreateAndCopy(Class, Map)を参照。- Type Parameters:
T- 型引数- Parameters:
beanClass- 生成したいBeanクラス、もしくはレコードクラスmap- JavaBeansのプロパティ名をエントリーのキー プロパティの値をエントリーの値とするMapexcludes- コピー対象外のプロパティ名- Returns:
- プロパティに値が登録されたBeanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのコンストラクタ実行時に問題が発生した場合。
-
createAndCopy
Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。srcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。- Type Parameters:
T- 型引数- Parameters:
beanClass- コピー先のBeanクラスsrcBean- コピー元のBean- Returns:
- コピーされたBeanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのコンストラクタの実行中に問題が発生した場合。
-
createAndCopy
Java Beansもしくはレコードからプロパティをコピーして、別のBeanを作成する。 生成対象がBeanであり、かつsrcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。 生成対象がレコードであり、かつsrcBeanがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。- Type Parameters:
T- 型引数- Parameters:
beanClass- コピー先のBeanクラスsrcBean- コピー元のBeanもしくはレコードcopyOptions- コピーの設定- Returns:
- コピーされたBeanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのコンストラクタの実行中に問題が発生した場合。
-
createAndCopyIncludes
Java Beansもしくはレコードから指定されたプロパティをコピーして、別のBeanを作成する。 生成対象がBeanであり、かつsrcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。 生成対象がレコードであり、かつsrcBeanがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。- Type Parameters:
T- 型引数- Parameters:
beanClass- コピー先のBeanクラスsrcBean- コピー元のBeanもしくはレコードincludes- コピー対象のプロパティ名- Returns:
- コピーされたBeanオブジェクト
- Throws:
BeansException-beanClassにデフォルトコンストラクタが定義されていない場合や、beanClassのデフォルトコンストラクタの実行中に問題が発生した場合。
-
createAndCopyExcludes
Java Beansから指定されたプロパティ以外をコピーして、別のBeanを作成する。 生成対象がBeanであり、かつsrcBeanがnullである場合、デフォルトコンストラクタでbeanClassを生成して返却する。 生成対象がレコードであり、かつsrcBeanがnullである場合は、各コンポーネントにnullもしくはプリミティブ型のデフォルト値を設定したレコードを生成して返却する。 プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。srcBeanに存在し、beanClassに存在しないプロパティはコピーされない。- Type Parameters:
T- 型引数- Parameters:
beanClass- コピー先のBeanクラスsrcBean- コピー元のBeanもしくはレコードexcludes- コピー対象外のプロパティ名- Returns:
- プロパティに値がコピーされたBeanオブジェクト
- Throws:
BeansException-beanClassのデフォルトコンストラクタの実行中に問題が発生した場合や、beanClassのプロパティのデフォルトコンストラクタの実行中に問題が発生した場合。
-
copy
public static <SRC,DEST> DEST copy(SRC srcBean, DEST destBean) BeanもしくはレコードからBeanに値をコピーする。 プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。- Type Parameters:
SRC- コピー元のBeanもしくはレコードの型DEST- コピー先のBeanの型- Parameters:
srcBean- コピー元のBeanオブジェクトもしくはレコードdestBean- コピー先のBeanオブジェクト- Returns:
- コピー先のBeanオブジェクト
- Throws:
BeansException-destBeanのプロパティのインスタンス生成に失敗した場合IllegalArgumentException- 引数のdestBeanがレコードの場合
-
copy
BeanもしくはレコードからBeanに値をコピーする。 プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。- Type Parameters:
SRC- コピー元のBeanもしくはレコードの型DEST- コピー先のBeanの型- Parameters:
srcBean- コピー元のBeanオブジェクトもしくはレコードdestBean- コピー先のBeanオブジェクトcopyOptions- コピーの設定- Returns:
- コピー先のBeanオブジェクト
- Throws:
BeansException-destBeanのプロパティのインスタンス生成に失敗した場合IllegalArgumentException- 引数のdestBeanがレコードの場合
-
copyExcludesNull
public static <SRC,DEST> DEST copyExcludesNull(SRC srcBean, DEST destBean) BeanもしくはレコードからBeanに値をコピーする。ただしnullのプロパティはコピーしない。 プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。- Type Parameters:
SRC- コピー元Beanもしくはレコードの型DEST- コピー先のBeanの型- Parameters:
srcBean- コピー元のBeanオブジェクトもしくはレコードdestBean- コピー先のBeanオブジェクト- Returns:
- コピー先のBeanオブジェクト
- Throws:
BeansException-destBeanのプロパティのインスタンス生成に失敗した場合IllegalArgumentException- 引数のdestBeanがレコードの場合
-
copyIncludes
BeanもしくはレコードからBeanに、指定されたプロパティをコピーする。 プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。includesには、srcBeanのトップレベル要素のみ指定可能である。 それ以外を指定した場合はコピーされない。// aaa.bbbはコピーされない SampleBean copiedSampleBean = BeanUtil.createAndCopyIncludes(SampleBean.class, sampleBean, "aaa.bbb");destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。- Type Parameters:
SRC- コピー元Beanもしくはレコードの型DEST- コピー先のBeanの型- Parameters:
srcBean- コピー元のBeanオブジェクトもしくはレコードdestBean- コピー先のBeanオブジェクトincludes- コピー対象のプロパティ名- Returns:
- コピー先のBeanオブジェクト
- Throws:
BeansException-destBeanのプロパティのインスタンス生成に失敗した場合IllegalArgumentException- 引数のdestBeanがレコードの場合
-
copyExcludes
BeanもしくはレコードからBeanに、指定されたプロパティ以外をコピーする。 プロパティのコピーはsrcBeanに定義されたプロパティをベースに実行される。srcBeanに存在し、destBeanに存在しないプロパティはコピーされない。destBeanにレコードが指定された場合は、IllegalArgumentExceptionが送出される。- Type Parameters:
SRC- コピー元Beanもしくはレコードの型DEST- コピー先のBeanの型- Parameters:
srcBean- コピー元のBeanオブジェクトもしくはレコードdestBean- コピー先のBeanオブジェクトexcludes- コピー対象外のプロパティ名- Returns:
- コピー先のBeanオブジェクト
- Throws:
BeansException-destBeanのプロパティのインスタンス生成に失敗した場合IllegalArgumentException- 引数のdestBeanがレコードの場合
-
createMapAndCopy
BeanもしくはレコードからMapにプロパティの値をコピーする。Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。
- Type Parameters:
SRC- Beanの型- Parameters:
srcBean- BeanもしくはレコードcopyOptions- コピーの設定- Returns:
- BeanのプロパティをコピーしたMap
-
createMapAndCopy
BeanもしくはレコードからMapにプロパティの値をコピーする。内部的には空の
CopyOptionsを渡してcreateMapAndCopy(Object, CopyOptions)を呼び出している。- Type Parameters:
SRC- Beanの型- Parameters:
srcBean- Beanもしくはレコード- Returns:
- BeanのプロパティをコピーしたMap
-
createMapAndCopyExcludes
public static <SRC> Map<String,Object> createMapAndCopyExcludes(SRC srcBean, String... excludeProperties) BeanもしくはレコードからMapにプロパティの値をコピーする。Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。
除外対象のプロパティ名が指定された場合は、そのプロパティがコピー対象から除外される。
- Type Parameters:
SRC- Beanの型- Parameters:
srcBean- BeanもしくはレコードexcludeProperties- 除外対象のプロパティ名- Returns:
- BeanのプロパティをコピーしたMap
-
createMapAndCopyIncludes
public static <SRC> Map<String,Object> createMapAndCopyIncludes(SRC srcBean, String... includesProperties) BeanもしくはレコードからMapに指定されたプロパティの値をコピーする。Mapのキーはプロパティ名で、値はプロパティ値となる。 値の型変換は行わず、Beanのプロパティの値を単純にMapの値に設定する。 BeanがBeanを持つ構造の場合、Mapのキー値は「.」で連結された値となる。
コピー対象のプロパティ名として指定できるのは、トップ階層のBeanのプロパティ名となる。 このため、階層構造で子階層のBeanがinclude指定されていた場合、子階層のBeanのプロパティは全てコピーされる。
- Type Parameters:
SRC- Beanの型- Parameters:
srcBean- BeanもしくはレコードincludesProperties- コピー対象のプロパティ名のリスト- Returns:
- BeanのプロパティをコピーしたMap
-