別のクラス B のオブジェクトであるプライベート最終メンバー変数を持つクラス A があります。
Class A {
private final classB obj;
}
Class B {
public void methodSet(String some){
}
}
クラス A が singleton であることは知っています。クラス B のメソッド「methodSet」を使用して値を設定する必要があります。classA にアクセスして、classA の ClassB のインスタンスにアクセスしようとします。
私はこれをします:
Field MapField = Class.forName("com.classA").getDeclaredField("obj");
MapField.setAccessible(true);
Class<?> instance = mapField.getType(); //get teh instance of Class B.
instance.getMethods()
//loop through all till the name matches with "methodSet"
m.invoke(instance, newValue);
ここで例外が発生します。
私はリフレクションが苦手です。誰かが解決策を提案したり、何が問題なのかを指摘したりできれば幸いです。