java中final修飾參數的做用

在方法參數前面加final關鍵字就是爲了防止數據在方法體中被修改。web

主要分兩種狀況:第一,用final修飾基本數據類型;第二,用final修飾引用類型。

第一種狀況,修飾基本類型(非引用類型)。這時參數的值在方法體內是不能被修改的,即不能被從新賦值。不然編譯就通不過。例如:

code

1 public static void valid(final int ag){2         ag=9;3         ag=10;4 }

錯誤提示:


第二種狀況,修飾引用類型。這時參數變量所引用的對象是不能被改變的。做爲引用的拷貝,參數在方法體裏面不能再引用新的對象。不然編譯通不過。例如:orm

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.「對象

可是對於引用,若是我是這樣,則不會報任何錯,徹底能編譯經過。it

1 public static void valid(final String[] ag){2         ag[0]="5";3         System.out.println(ag);4 }

因此,final這個關鍵字,想用的話就用基本類型,仍是頗有做用的。引用類型,仍是算了吧。編譯

相關文章
相關標籤/搜索