在我的课堂上,我有 field int count
。我想根据变量的值创建一个新变量count
,如下所示:int a = new Integer(count)
. 但是当我更新 count variable:count++
时,变量a
也会更新。那么如何创建非引用 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 回答