「Java」PropertyUtils.describeメソッドでクラスBeanの全フィールドを取得する方法
説明
describe(bean)
戻り値:Map
bean内の各値をMapに入れて返します。
Javaコード
1.Userクラスの定義
package com.arkgame.study;
public class User {
private Integer age = null;
private String userId = null;
private String addr = null;
public User(Integer age, String userId, String addr) {
super();
this.age = age;
this.userId = userId;
this.addr = addr;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
2.PropertyUtils.describe()でBeanのフィールドを取得
package com.arkgame.study;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import org.apache.commons.beanutils.PropertyUtils;
public class DescibeMapDemo {
public static void main(String[] args)
throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
User userA = new User(21, "user001", "this is a test addr1");
User userB = new User(31, "user002", "this is a test addr2");
System.out.println("**********オブジェクトuserA結果************");
Map<String, Object> mpA = (Map<String, Object>) PropertyUtils.describe(userA);
for (Map.Entry<String, Object> tt : mpA.entrySet()) {
System.out.println("属性: " + tt.getKey() + " 値:" + tt.getValue());
}
System.out.println("**********オブジェクトuserB結果************");
Map<String, Object> mpB = (Map<String, Object>) PropertyUtils.describe(userB);
for (Map.Entry<String, Object> tt : mpB.entrySet()) {
System.out.println("属性: " + tt.getKey() + " 値:" + tt.getValue());
}
}
}
実行結果
**********オブジェクトuserA結果************
属性: addr 値:this is a test addr1
属性: userId 値:user001
属性: age 値:21
**********オブジェクトuserB結果************
属性: addr 値:this is a test addr2
属性: userId 値:user002
属性: age 値:31