4月 7th, 2008at 11:51
Tags: Apache
BeanUtils1.8でBeanUtilsクラスを使ってオブジェクトをまるごとコピー
Beanの操作に役立つユーティリティクラスを提供する。
依存するライブラリは以下の2つ。
- Collections Package (Apache Commons), version 1.0 or later
- Logging Package (Apache Commons), version 1.0 or later
JavaBeanのプロパティのためにリフレクションを使ったユーティリティメソッドを提供する。
BeanUtilsクラス
実装はBeanUtilsBeanクラスによって提供される。これらのStaticなユーティリティメソッドは、デフォルトのインスタンスで使う。BeanUtilsBeanクラスのインスタンスを使うことによって、より高度な動作が提供される。
APIを見る限りString型のアクセッサを持ったBeanの操作が得意に見えた。オブジェクト型のアクセッサは「PropertyUtils」というほうを使ったほうがいいかも。
copyProperties
コピー元Beanからコピー先Beanへ同じ名前のプロパティーをコピーする。詳細はBeanUtilsBeanを参照のこと。
//RedVOからRedChildVOにコピーtry{ BeanUtils.copyProperties(childVO, redVO);}catch(IllegalAccessException iae){ //アクセッサにアクセスできない場合
}catch(InvocationTargetException ite){ //アクセッサメソッドが例外を投げた場合}
copyProperty
必要である型変換をおこなって、特定のプロパティを特定のBeanのプロパティにコピーする。以下の場合ではgetListメソッドに新しいArrayListをコピーしている。
try{ BeanUtils.copyProperty(childVO, "list", new ArrayList());}catch(IllegalAccessException e){
}catch(InvocationTargetException e){
}
PropertyUtilsクラス
JavaのリフレクションAPIを使った、一般的なオブジェクトをやり取りするアクセッサの手助けをするユーティリティメソッドを提供する。詳細はPropertyUtilsBeanを。
copyProperties
コピー元のBeanからコピー先のBeanへ同じ名前のプロパティをコピーする。(実際のアクセッサがBeanInfoのクラスを通してカスタム設計されたかもしれない)




