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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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()メソッドでプロパティを一括セットします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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());
}
}
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()); } }
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