skillup

技術ブログ

Java

BeanUtilsについて

投稿日:2015年8月1日 更新日:

以前このエントリーでも紹介しましたが、BeanUtils、思った以上に使い方が幅広いです。

クラスからクラスに

あるクラスからあるクラスへの値の代入です。

プロパティ名と型が一緒であることが前提ですが、下記の書き方で簡単にあるクラス(beforeClass)からあるクラス(afterClass)へコピーできます。

セッター、ゲッターをごりごり書かなくていいのが助かります。

自分自身の場合はもちろんthisと記述してあげればOKです。

マップからクラスに

それほど頻度は多くないかもしれませんが、あるマップからあるクラスに値を入力したいときですね。

以前のエントリーでも書きましたが、下記のように書きます。

クラスからマップ

クラスからマップも行けます。

私は試していませんが、下記リンクではクラスからMapへの変換がいけるようです。

BeanからBeanへ一括情報コピー。Map←→Beanもできる。BeanUtils

特定の値の取り出し

例えばname、age、delete_flgというプロパティがあり、nameとageのみ取り出したい、あるいはクラスからクラスに特定の値だけコピーしたいケースがあるとします。

通常だとセッター、ゲッターをがりがり書かなくてはいけません。2つぐらいならいいのですが、プロパティの数が増えてくるとセッター、ゲッターの羅列がひどくなってきます。

copyPropertyだと一気に全ての値をコピーしてしまうのですが、下記のようなやり方で特定の値のコピー(or取り出し)もできます。

※この場合はBeanUtilsのなかのPropertyUtilsを使います。

fieldNameにname、ageと書いてあげればそのままbeforeClassから値を取り出すことができ、値を取り出したり、afterClassに値をセットできます。

BeanUtils.getPropertyでも取得できますが、どうやら値が強制的にStringになってしまうようですね。

PropertyUtilsであればObjectで取り出し、setPropertyでうまいぐあいにキャストしてくれます。

以上、BeanUtilsの簡単かつ頻度が高いだろうと思われる処理について書かせていただきました。これだけでも相当なコーディング量の短縮になりました。

もちろん紹介したのは機能のほんの一例です。下記リンクなどにはさらに詳細な情報が載っています。

リンク

↓非常に詳しいかつ、わかりやすいです。

commons BeanUtils

その他のいろいろな使用例など

BeanUtils.copyPropertiesで特定のものをコピー

commons-beanutils 基礎の基礎

BeanUtils.copyPropertiesによるフィールド値コピー

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

イテレーターに関して

Javaの繰り返しでイテレーターという概念がありますね。 今はあまり使われなくなっているようですが、資格の勉強をしていたら出てきたのと、たしなみとして知っておく必要があるため、記述します。 ソース [ …

no image

Messageプロパティの設置方法

JavaEEに限らず、エラーメッセージなどは通常、プログラムの中に書くのではなく、できればエラーメッセージファイルの中で管理するのが望ましいでしょう。 またJSF側の名称の表示なども直接xhtmlの中 …

no image

依存ライブラリを含むプログラムのjar化に関して

以前、jar化する場合のpomの記述方法について書いたのですが、一部記述が正しくなかったようです。 mavenでのjarファイル作成 この方法でやってもjarファイルを単独で取り出すとNoClassD …

no image

配列の参照の仕方

変数が存在しているにもかかわらず値が入っていないときは、プログラミングではNULLという表記をします。(ちなみに空白が入っているのとは違います。) これはプログラマにとってはほぼ常識的な内容なのですが …

no image

Optionalについて その1

Streamに続いて、Java8で新搭載された機能がOptional です。 Javaではnullの処理をいちいちしなくてはいけないのがいろいろと面倒ですが、Optionalの機能をうまく使うことで可 …

アーカイブ