BeanUtils#setPropertyでCalendarを扱う
commons に BeanUtils というライブラリがあります
これは手軽にリフレクションできる素敵なライブラリです
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かゆいところがわかってるね!