はじめまして

yoheiMです。

駆け出しシステムエンジニアとして、学んだことを覚え書きしていきたいと思います。



さて、今日は、JavaのリフレクションのうちFieldクラスを使ってみたので覚書きしたいと思います。

java.lang.reflect.Fieldを用いると、クラス内のprivateフィールドにもアクセス出来る。


実際のソースを書いてみました。

public class FieldWork {

public static void main(String[] args) throws Exception{

AAA aaa = new AAA();

//Fieldインスタンスを作成
Field field = aaa.getClass().getDeclaredField("hoge");
field.setAccessible(true);

//表示
System.out.println(field.get(aaa));

         //フィールド値を変更してみる
field.set(aaa, "変更したよ");
System.out.println(field.get(aaa));
}
}

class AAA {
private String hoge = "お試し";
}


ん〜、privateメソッドにアクセスできるとは凄いですね。。