Javaその他

Javaのリフレクションを利用してみた(フィールド編)

以前、下記記事にて、Javaのリフレクションについて記載したことがあった。

Javaのリフレクションを利用してみた(メソッド編)リフレクションを利用すると、クラス名・メソッド名・引数を指定して、指定したクラスのメソッドを動的に実行することができるため、メソッド名・...

上記記事では、リフレクションを利用したメソッドの呼び出しについて記載していたが、今回はprivateフィールドの値設定・取得を含むようなサンプルプログラムを作成したので、共有する。

前提条件

下記記事のIntelliJ IDEA Community版をダウンロード済であること。

IntelliJ IDEAをインストールしてみた「IntelliJ IDEA(インテリジェイ アイディア)」という、Eclipseと同等の機能をもつJava用統合開発環境を使って、Sp...

また、下記のように、「demoJava」というJavaプロジェクトを作成済であること。
demoJavaプロジェクト

なお、IntelliJ IDEA上でJavaプロジェクトを作成する方法については、IntelliJ IDEA Community版をダウンロードする記事内の、「IntelliJ IDEA上でのJavaプロジェクトの作成・実行」を参照のこと。

フィールドへのリフレクションを利用したサンプルプログラムの作成と実行

今回作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成

今回は、「CallSampleField.java」で「SampleField.java」の各フィールドの呼び出しを行っている。それぞれのプログラムの内容は以下の通り。



さらに、その実行結果は以下の通り。
サンプルプログラムの実行結果

要点まとめ

  • クラスオブジェクトのgetDeclaredFieldメソッドを呼び出し後、set/getメソッドを呼び出すことにより、フィールドへの値設定/値取得が行える。