其他答案对我不起作用.我的问题是关于整数.
Integer i1 = new Integer(11);
Integer i2 ;
i2 = i1;
System.out.println(i1+" "+i2);
i1 = 233;
System.out.println(i1+" "+i2);
//~ 11 11
//~ 233 11
Run Code Online (Sandbox Code Playgroud)
我想让i1和i2相关.
在java中java.lang.Integer是不可变的.这意味着您无法更改Integer对象的值(以通常的方式).您可以Integer使用新值创建新实例.
i1并i2包含对同一Integer实例的引用.当你做的时候
i1 = 233;
Run Code Online (Sandbox Code Playgroud)
它意味着i1引用另一个Integer类的实例
如果你想要它i1并i2引用你可以使用的同一个实例AtomicInteger,但它AtomicInteger是为了不同的目的而制作的.
AtomicInteger i1 = new AtomicInteger(11);
AtomicInteger i2 ;
i2 = i1;
System.out.println(i1+" "+i2);
i1.set(233);
System.out.println(i1+" "+i2);
Run Code Online (Sandbox Code Playgroud)
或者你可以做一个包装
public static class IntegerWrapper {
private int value;
public IntegerWrapper(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public IntegerWrapper setValue(int value) {
this.value = value;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
和代码
IntegerWrapper i1 = new IntegerWrapper(11);
IntegerWrapper i2 ;
i2 = i1;
System.out.println(i1.getValue()+" "+i2.getValue());
i1.setValue(233);
System.out.println(i1.getValue()+" "+i2.getValue());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3892 次 |
| 最近记录: |