「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