私のクラスには、 field がありますint count
。count
次のように、変数の値に応じて新しい変数を作成したいと思いますint a = new Integer(count)
。しかし、 count variable: を更新するcount++
と、 variablea
も更新されます。では、非参照の int 変数を作成するにはどうすればよいでしょうか。
質問する
82 次
4 に答える
3
これはJavaではできません。あなたの最も近い賭けは、単一の int で囲んでいるクラスを作成し、代わりにそれを参照することです。
class MutableInteger {
public int value;
}
じゃあ後で:
MutableInteger a = new MutableInteger();
a.value = 5;
MutableInteger b = a;
b.value++;
a.value++;
//since a.value is the same primitive as b.value, they are both 7
しかし: これは、Java で一般的に受け入れられている一連のベスト プラクティスを破っています。本当の問題が何であれ、解決する別の方法を探すかもしれません。
于 2012-04-07T15:12:52.827 に答える
2
あなたが説明した状況は、実際には起こり得ません。
このコードを試してください:
int count = 15;
int a = new Integer(count);
count++;
Window.alert("a is "+ a + " and count is " + count);
count
更新されてa
いません。つまり、どこかでエラーが発生したことを意味します。
于 2012-04-07T15:22:48.257 に答える
1
次のことを試してください。
int a = count + 0;
于 2012-04-07T15:25:13.817 に答える
0
あなたの問題はやや見当違いです。理由は次のとおりです。
Java では、プリミティブ値をコピーしても、それらの参照はコピーされません。コードを見て、追加の手順を実行している場所を探します。
のコンストラクターInteger
はこれを使用します。
this.integer = integer;
于 2012-04-07T23:24:37.567 に答える