在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()
來設置對象的狀態。
通過這種方式,我們可以在方法中修改對象的狀態,從而實現類似于引用傳遞的效果。