在方法參數前面加final關鍵字就是爲了防止數據在方法體中被修改。這裏主要分兩種情況:第一,用final修飾基本數據類型;第二,用final修飾引用類型。
第一種情況,修飾基本類型(非引用類型)。這時參數的值在方法體內是不能被修改的,即不能被重新賦值。否則編譯就通不過。例如:
public void testInt(final int param1){
param1=100;
}
在方法體內修改了基本數據類型變量的值,在Eclipse中則會提示:“ The final local variable param1 cannot be assigned. It must be blank and not using a compound assignment.
第二種情況,修飾引用類型。這時參數變量所引用的對象是不能被改變的。作爲引用的拷貝,參數在方法體裏面不能再引用新的對象。否則編譯通不過。例如:public void testFinal2(final Object param2){
param2=newObject();
}
在方法體內修改了參數的引用,在Eclipse中則會提示:“
The final local variable param2 cannot be assigned. It must be blank and not using a compound assignment.“
在調用該方法時,形參一旦被實參賦值,就不能改變其值了。