3 java parameters methods reference
在Java中的Ex:
class A {
private Integer x = new Integer(0);
public void setValue(Integer q) {
q = 20;
}
public void callX() {
setValue(x); // this does not set x to be 20, which is what i need. Is there a way?
}
}
Run Code Online (Sandbox Code Playgroud)
你不能.
包装器类型是不可变的,因此它们有效地模拟基本类型的行为:通过执行q = 20使参数q指向Integer带有值的新intstance 20,但它不会更改x调用方法中引用的原始实例.
你可以使用AtomicInteger它,它是可变的:
private AtomicInteger x = new AtomicInteger(0);
public void setValue(AtomicInteger q) {
q.set(20);
}
public void callX() {
setValue(x);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5295 次 |
| 最近记录: |