「Java」BeanUtils.populateメソットでMapの要素をクラスbeanに格納する方法

説明
Map内の各値をクラスbeanに入れます
サンプルコード
1.Userクラスの定義

package com.arkgame.study;

public class User {
      private Integer age = null;
      private String userName = null;
      private String addr = null;

   //constructor
      public User(Integer age, String userName, String addr) {
            super();
            this.age = age;
            this.userName = userName;
            this.addr = addr;
      }

      public Integer getAge() {
            return age;
      }

      public void setAge(Integer age) {
            this.age = age;
      }

      public String getuserName() {
            return userName;
      }

      public void setuserName(String userName) {
            this.userName = userName;
      }

      public String getAddr() {
            return addr;
      }

      public void setAddr(String addr) {
            this.addr = addr;
      }

}

2.populate()メソッドでプロパティを一括セットします。

package com.arkgame.study;

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;

public class PopulateDemo {

      public static void main(String[] args) {
         //object instance
            User userObj = new User(21, "testUser001", "101 address");
            Map<String, Object> cftMp = new HashMap<String, Object>();
            cftMp.put("age", 23);
            cftMp.put("userName", "user007");
            cftMp.put("addr", "dummy addr");

            try {
                  // map内の値をbeanに入れます
                  BeanUtils.populate(userObj, cftMp);
            } catch (IllegalAccessException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            } catch (InvocationTargetException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            }
            System.out.println("実行結果");
            System.out.println("年齢:" + userObj.getAge());
            System.out.println("ユーザ名:" + userObj.getuserName());
            System.out.println("アドレス:" + userObj.getAddr());

      }

}

実行結果
年齢:23
ユーザ名:user007
アドレス:dummy addr

Java

Posted by arkgame