commons-beanutils

commons-beanutilsの覚え書き

以下のような、UserBeanクラスがあるとする。

  1. UserBean
public class UserBean implements Serializable {

	private static final long serialVersionUID = 3456273076555404648L;
	private Integer uid;
	private String name;

	public Integer getUid() {
		return uid;
	}

	public void setUid(Integer uid) {
		this.uid = uid;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

PropertyUtils クラス

プロパティの取得・設定

UserBean userBean = new UserBean();

// プロパティをセット
PropertyUtils.setProperty(userBean, "uid", 100);
PropertyUtils.setProperty(userBean, "name", "K_SUKE");

// プロパティの取得
Object age = PropertyUtils.getProperty("uid");
String name = (String)PropertyUtils.getProperty("name");

BeanUtils クラス

プロパティの取得・設定

UserBean userBean = new UserBean();

// プロパティをセット
BeanUtils.setProperty(userBean, "uid", "100");     // プロパティの値を文字列で渡す
BeanUtils.setProperty(userBean, "name", "K_SUKE");

// プロパティの取得
final String name = BeanUtils.getProperty("uid");
final String age = BeanUtils.getProperty("name");  // 文字列 "97" が返される

BeanUtilsでStringをUserBeanのプロパティーにセットするとき、ConvertUtils の static メソッドを用いて型変換を行ってセットする。

一括設定(map)

UserBean userBean = new UserBean();

// サンプルの Map
Map<String, String> map = new HashMap<String, String>();
map.put("uid", "100");
map.put("name", "K_SUKE");

// プロパティを一括セット
BeanUtils.populate(userBean , map);

memo
Beanの全プロパティー取得

Field[] fields = UserBean.class.getDeclaredFields();