Java リフレクションでprivate変数から値を取得する




リフレクションその2です。
前回はprivate変数に値をセットしましたが、今度は逆にprivate変数から値を取得してみます。
フレームワークやライブラリを作るときにどうぞw

Java リフレクションでprivate変数から値を取得するサンプル

privateなフィールド変数にセットされた値をリフレクションで取得。
取得した結果を標準出力します。

実行結果

サンプルの解説

Class#getDeclaredField(String)にて、目的のフィールド変数名を指定して、Fieldインスタンスを取得。
取得したFieldインスタンスを利用して、Field#get(Object)にて、private変数より値を取得することができます。

なお、必要に応じて、取得する前に、Field#setAccessible(true)を指定して、Javaセキュリティを抑制して、アクセス権を得る必要があります。

リフレクションで値を設定するには・・・?

リフレクションで値を設定する方法は、こちらを見てください。

Java リフレクションでprivate変数に値をセットする

2018.01.27