在方法參數前面加final關鍵字就是為了防止數據在方法體中被修改。
主要分兩種情況:第一,用final修飾基本數據類型;第二,用final修飾引用類型。
第一種情況,修飾基本類型(非引用類型)。這時參數的值在方法體內是不能被修改的,即不能被重新賦值。否則編譯就通不過。例如:
1 public static void valid(final int ag){ 2 ag=9; 3 ag=10; 4 }
錯誤提示:
第二種情況,修飾引用類型。這時參數變量所引用的對象是不能被改變的。作為引用的拷貝,參數在方法體里面不能再引用新的對象。否則編譯通不過。例如:
1 public static void valid(final String[] ag){ 2 ag=new String[9]; 3 }
這個的提示和上面是一樣的。:“ The final local variable param2 cannot be assigned. It must be blank and not using a compound assignment.“
但是對於引用,如果我是這樣,則不會報任何錯,完全能編譯通過。
1 public static void valid(final String[] ag){ 2 ag[0]="5"; 3 System.out.println(ag); 4 }
所以,final這個關鍵字,想用的話就用基本類型,還是很有作用的。引用類型,還是算了吧。