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这个关键字,想用的话就用基本类型,仍是颇有做用的。引用类型,仍是算了吧。编译

相关文章
相关标签/搜索