Java中的方法參數(shù)都是按值傳遞的,而不是按引用傳遞的。這意味著在方法內(nèi)部對(duì)參數(shù)的修改不會(huì)影響到方法外部的變量。
如果想要在方法內(nèi)部修改傳入?yún)?shù)的值,可以使用以下方法:
傳遞一個(gè)可修改的對(duì)象作為參數(shù):將需要修改的值封裝在一個(gè)對(duì)象中,然后傳遞該對(duì)象作為參數(shù)。在方法內(nèi)部可以通過(guò)修改對(duì)象的屬性來(lái)改變參數(shù)的值。
public class ValueWrapper {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public void modifyValue(ValueWrapper wrapper) {
wrapper.setValue(10);
}
public static void main(String[] args) {
ValueWrapper wrapper = new ValueWrapper();
wrapper.setValue(5);
modifyValue(wrapper);
System.out.println(wrapper.getValue()); // 輸出 10
}
返回修改后的值:將方法的返回類(lèi)型設(shè)置為需要修改的值的類(lèi)型,并通過(guò)return語(yǔ)句返回修改后的值。在方法調(diào)用處可以將返回值賦給原始變量。
public int modifyValue(int value) {
value = 10;
return value;
}
public static void main(String[] args) {
int value = 5;
value = modifyValue(value);
System.out.println(value); // 輸出 10
}
注意,雖然無(wú)法直接修改傳入?yún)?shù)的值,但可以通過(guò)修改對(duì)象的屬性或返回修改后的值來(lái)達(dá)到相同的效果。