• ベストアンサー

Javaでprivate変数を他クラスから書き換る

Javaでprivate変数を他クラスから書き換えたいです 調べてみたら http://d.hatena.ne.jp/devworks/20090129/1233211971 がヒットしたのですが どうもうまくいきません エラーなどはなくどうすればいいかわかりません 誰かサンプルソースなど書いてくださらないでしょうか? 回答よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • itu1989
  • ベストアンサー率44% (37/83)
回答No.4

自分の環境で確認したらちゃんとprivate変数更新できましたよ^^ 以下ソース 【private変数を持ったクラス Test2.java】 public class Test2 {  private String val = "初期値";  public String getVal(){   return val;  } } 【private変数に変更を加えたいクラス Test1.java】 public class Test1 {  Test2 obj = new Test2();  // 初期値確認  System.out.println(obj.getVal());  Field f = null;  f = obj.getClass().getDeclaredField("val");  f.setAccessible(true);  f.set(obj, "更新値");  // 変更後確認  System.out.println(obj.getVal()); } 【実行結果】 >初期値 >更新値

spmz1311
質問者

お礼

結局できませんでしたが 皆さん回答ありがとうございました

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>誰かサンプルソースなど書いてくださらないでしょうか? サンプルソース書いても、そのリンク先のと変わらないものができあがるだけですけど・・・

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

キーワード「java getter setter」でGoogle画像検索しても分かりやすい図解がすぐヒットしなかったので, キーワード「java アクセサメソッド」でGoogle画像検索して上位にヒットしたイラストが掲載されていたページがこちら。 http://www.atmarkit.co.jp/ait/articles/0404/17/news012_2.html JavaBeansという固有名詞が登場していますが,ごく一般的なJavaプログラミングにおいても,リンク先で解説されているコーディング書式を用いています。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

これでいいじゃん。 public class A { private int value; public void setValue(int aValue) { value = aValue; } } というか、そこに書いてあることは普通にプログラムする上では全く不要なテクニックです。 使う必要があるのはごく一部のフレームワークのコーディング時ぐらいでしょう。

spmz1311
質問者

補足

実はマインクラフトというゲームのMODを作っていて できるだけ既存クラスを書き換えたくないんですよ・・・ なのでprivate変数を他のクラスから書き換えたいんですが・・・ putのnameには変数の名前をいれてobjにはインスタンスを渡せばいいんですよね?

関連するQ&A