「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;
}
}
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()メソッドでプロパティを一括セットします。
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