Javaと情熱のあいだ

カステラとドーナツと珈琲

Bean間で型の異なるメンバにコピーするサンプル

Converterを実装してコンバタを作成するサンプル
材料は
org.apache.commons.beanutils

    /**
     *
     * 実行
     * @throws Exception 例外
     */
    public void execute() throws Exception {

        final TestBean testBean = new TestBean(1);

        final SampleBean sampleBean = new SampleBean("0");

        ConvertUtils.register(new SampleConverter(), String.class);

        BeanUtils.copyProperties(sampleBean, testBean);

        System.out.println(sampleBean.getHoge());
    }

    /**
     *
     * <HR>
     * <P>
     *  ■モジュール名 <BR>
     * <BLOCKQUOTE>
     *      TestBean.java <BR>
     * </BLOCKQUOTE>
     * <P>
     *  ■クラス仕様 <BR>
     * <BLOCKQUOTE>
     *      TestBeanクラスはBeenクラスです。<BR>
     * </BLOCKQUOTE>
     * <P>
     * <HR>
     * <P>
     */
    public class TestBean {

        /**
         * 確認用数値
         */
        private int hoge;

        /**
         *
         * コンストラクタ
         * @param hoge 確認用数値
         */
        public TestBean(final int hoge) {
            this.hoge = hoge;
        }

        /**
         *
         * 確認用数値の取得
         * @return 確認用数値
         */
        public int getHoge() {
            return hoge;
        }

        /**
         *
         * 確認用数値の設定
         * @param hoge 確認用数値
         */
        public void setHoge(final int hoge) {
            this.hoge = hoge;
        }

    }

    /**
     *
     * <HR>
     * <P>
     *  ■モジュール名 <BR>
     * <BLOCKQUOTE>
     *      SampleBean.java <BR>
     * </BLOCKQUOTE>
     * <P>
     *  ■クラス仕様 <BR>
     * <BLOCKQUOTE>
     *      SampleBeanクラスはBeenクラスです。<BR>
     * </BLOCKQUOTE>
     * <P>
     * <HR>
     * <P>
     */
    public class SampleBean {

        /**
         * 確認用数値
         */
        private String hoge;

        /**
         *
         * コンストラクタ
         * @param hoge 確認用数値
         */
        public SampleBean(final String hoge) {
            this.hoge = hoge;
        }

        /**
         *
         * 確認用数値の取得
         * @return 確認用数値
         */
        public String getHoge() {
            return hoge;
        }

        /**
         *
         * 確認用数値の設定
         * @param hoge 確認用数値
         */
        public void setHoge(final String hoge) {
            this.hoge = hoge;
        }

    }

    /**
     *
     * <HR>
     * <P>
     *  ■モジュール名 <BR>
     * <BLOCKQUOTE>
     *      SampleConverter.java <BR>
     * </BLOCKQUOTE>
     * <P>
     *  ■クラス仕様 <BR>
     * <BLOCKQUOTE>
     *      SampleConverterクラスはサンプルコンバータクラスです。<BR>
     * </BLOCKQUOTE>
     * <P>
     * <HR>
     * <P>
     */
    public class SampleConverter implements Converter {

        /**
         *
         * コンバータ
         * @param arg0 変換先クラス
         * @param arg1 変換元
         * @return 文字列
         */
        public Object convert(final Class arg0, final Object arg1) {

            System.out.println("変換先クラス名:" + arg0.getName());
            return String.valueOf(arg1) + "hoge";
        }
    }