「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

Java

Posted by arkgame