「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