java中的援用传递怎样实现
在Java中,方法参数是按值传递的,但是对援用类型的参数,我们可以通过修改对象的状态来摹拟援用传递。具体实现方法以下:
Wrapper
,包括一个援用类型的字段obj
。public class Wrapper<T> {
private T obj;
public Wrapper(T obj) {
this.obj = obj;
}
public T get() {
return obj;
}
public void set(T obj) {
this.obj = obj;
}
}
Wrapper
类作为参数,通过修改Wrapper
对象的状态来摹拟援用传递。public class Main {
public static void main(String[] args) {
Wrapper<Integer> wrapper = new Wrapper<>(10);
modify(wrapper);
System.out.println(wrapper.get()); // 输出:20
}
public static void modify(Wrapper<Integer> wrapper) {
int value = wrapper.get();
value += 10;
wrapper.set(value);
}
}
在上述代码中,modify
方法接收一个Wrapper<Integer>
对象作为参数,通过调用wrapper.get()
来获得对象的状态,修改状态后再通过wrapper.set()
来设置对象的状态。
通过这类方式,我们可以在方法中修改对象的状态,从而实现类似于援用传递的效果。
TOP