Javaと情熱のあいだ

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

BeanUtils.getPropertyとPropertyUtils.getPropertyの違い

BeanUtilsのBeanからメンバを取得するメソッドは複数あるけど
メソッドによって取得する結果が異なるのでその検証用サンプル。
BeanUtils.getPropertyはString
PropertyUtils.getPropertyはObject
 
BeanUtils.getProperty

public class BeanUtilsExample {

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

        final Test test = new Test();

        test.setHoge(0);

        test.setPiyo("piyo");

        final Object object = BeanUtils.getProperty(test, "hoge");

        System.out.println(object.getClass().getName());
    }

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

        /**
         * 確認用メンバ
         */
        private int hoge;

        /**
         * 確認用メンバ
         */
        private String piyo;

        /**
         * ほげほげを取得します。
         * @return
         */
        public int getHoge() {
            return hoge;
        }

        /**
         * ほげほげを設定します。
         * @param hoge
         */
        public void setHoge(int hoge) {
            this.hoge = hoge;
        }

        /**
         * ぴよぴよを取得します。
         * @return
         */
        public String getPiyo() {
            return piyo;
        }

        /**
         * ぴよぴよを設定します。
         * @param piyo
         */
        public void setPiyo(String piyo) {
            this.piyo = piyo;
        }
    }
}

PropertyUtils.getProperty

public class PropertyUtilsExample {

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

        final Test test = new Test();

        test.setHoge(0);

        test.setPiyo("piyo");

        final Object object = PropertyUtils.getProperty(test, "hoge");

        System.out.println(object.getClass().getName());

    }

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

       /**
        * 確認用メンバ
        */
       private int hoge;

       /**
        * 確認用メンバ
        */
       private String piyo;

       /**
        * ほげほげを取得します。
        * @return
        */
       public int getHoge() {
           return hoge;
       }

       /**
        * ほげほげを設定します。
        * @param hoge
        */
       public void setHoge(int hoge) {
           this.hoge = hoge;
       }

       /**
        * ぴよぴよを取得します。
        * @return
        */
       public String getPiyo() {
           return piyo;
       }

       /**
        * ぴよぴよを設定します。
        * @param piyo
        */
       public void setPiyo(String piyo) {
           this.piyo = piyo;
       }
   }

}