BeanUtiljavaのリフレクションAPIを簡単に利用できるユーティリティークラスを紹介します。リフレクションとはリフレクションAPIは、「java.lang.reflect」パッケージに含まれており、Javaクラスからフィールドやメソッドなどの情報を取得するAPIです。以下のクラスを使用します。文字列からクラスのインスタンスを生成したり、メソッドを実行することができます。クラス名やメソッド名の定義はXMLなどの外部ファイルへ記述することで、アプリケーションを実行時の環境の変化に動的に対応させることができます。柔軟性の高いアプリケーションを構築するうえで非常に有効なAPIとなっています。リフレクションの目的リフレクションはユーザーが直接使うことはあまり多くないのですが、Struts等のWebアプリケーションやO/Rマッピング等のフレームワーク内では多用されています。Web画面の入力データをJavaBeansプロパティに自動設定する場合や、JavaBeansプロパティを元に自動的に更新するSQLを発行する場合などに利用されています。アプリケーションの起動時に機能を拡張するプラグインを動的に読み込んで登録するといった機能はリフレクションを使うと簡単に実現できます。サンプルの実行では、サンプルを実行して頂き、是非フレームワーク的なプログラミングを体感してください。ここでは以下のクラスを使用しリフレクションユーティリティの簡単な使い方を示しています。Main.java・・・実行するクラスBeanUtil.java・・・リフレクションのユーティリティクラスFreeSoft.java・・・フリーソフを表すクラスでリフレクションとして利用されます。nameフィールドに値をセットする。FreeSoftのshowName()メソッドを実行します。FreeSoftのshowPrice()メソッドを実行します。メソッドに引数がある場合はObject型の配列で渡す必要がある。通常の場合も、リフレクションを使用した場合も実行結果は同じですね。Exception文字列「className」からインスタンスを生成し返します。Exception文字列「className」からインスタンスを生成し返します。Exceptionクラス「clazz」からインスタンスを生成し返します。Exceptionクラス「clazz」からインスタンスを生成し返します。呼び出し、値「value」を格納します。setterメソッドがなければフィールドへダイレクトに値を設定します。以下の例外が発生します。呼び出し値を取得します。getterメソッドがなければフィールドからダイレクトに値を取得します。以下の例外が発生します。NoSuchMethodExceptionオブジェクト「invokeObject」のメソッド「callMethod」を実行します。リターン値がある場合は、Object形として得る事ができます。引数がある場合はオブジェクトの配列として渡す。引数が無い場合はnullを渡します。NoSuchMethodExceptionオブジェクト「invokeObject」のメソッド「callMethod」を検索します。引数がある場合はオブジェクトの配列として渡す。引数が無い場合はnullを渡します。