在Java中,在语言级别上没有类似于ref的东西。在Java中,只有按值传递语义
为了好奇,您可以在Java中实现类似于ref的语义,只需将对象包装在可变的类中即可:
public class Ref {
private T value;
public Ref(T value) {
this.value = value;
}
public T get() {
return value;
}
public void set(T anotherValue) {
value = anotherValue;
}
@Override
public String toString() {
return value.toString();
}
@Override
public boolean equals(Object obj) {
return value.equals(obj);
}
@Override
public int hashCode() {
return value.hashCode();
}
}
测试用例:
public void changeRef(Ref ref) {
ref.set("bbb");
}
// ...
Ref ref = new Ref("aaa");
changeRef(ref);
System.out.println(ref); // prints "bbb"