在Java中,方法參數(shù)是按值傳遞的,但是對(duì)于引用類型的參數(shù),我們可以通過(guò)修改對(duì)象的狀態(tài)來(lái)模擬引用傳遞。具體實(shí)現(xiàn)方法如下:
Wrapper
,包含一個(gè)引用類型的字段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
類作為參數(shù),通過(guò)修改Wrapper
對(duì)象的狀態(tài)來(lái)模擬引用傳遞。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
方法接收一個(gè)Wrapper<Integer>
對(duì)象作為參數(shù),通過(guò)調(diào)用wrapper.get()
來(lái)獲取對(duì)象的狀態(tài),修改狀態(tài)后再通過(guò)wrapper.set()
來(lái)設(shè)置對(duì)象的狀態(tài)。
通過(guò)這種方式,我們可以在方法中修改對(duì)象的狀態(tài),從而實(shí)現(xiàn)類似于引用傳遞的效果。