BeanUtils#setPropertyでCalendarを扱う

commonsBeanUtils というライブラリがあります
これは手軽にリフレクションできる素敵なライブラリです

javaのDateクラスはダメダメなので
CalendarクラスをフィールドにしたBeanを作りました

public class TestBean {
	private Calendar dateField;

	public Calendar getDateField() {
		return dateField;
	}

	public void setDateField(Calendar dateField) {
		this.dateField = dateField;
	}
}

このクラスにdatabaseから値を取得して
BeanUtils#setPropertyでCalendarに入れられればいいなぁって思いました

取り合えず以下のようなコードで実行してみたら
うまく行きませんでした

TestBean testBean = new TestBean();
Iterator itreator = BeanUtils.describe(testBean).keySet().iterator();
while (itreator.hasNext()) {
	String name = (String) itreator.next();
	if (!name.equals("class")) {
		BeanUtils.setProperty(testBean, name, resultSet.getObject(name));
 	}
}

うーんと思って調べていたら
CalendarConverter というのがあった
実装されたバージョンを見たら、1.8.0だったので、
手持ちのライブラリのバージョンを見たら1.7.0でした
これを最新の1.8.2に更新したら、
さくっとうまく行きました

さすがJakartaかゆいところがわかってるね!