首页上一页 1 下一页尾页 1 条记录 1/1页
参数里面的final有什么作用?去掉之后好像也不影响什么
读者朋友:
您好,将方法的参数定义为final类型,这表示无法在方法中更改参数引用所指向的对象,可以看一下下面的示例:
//如果不是final 的话,可以在checkInt方法内部把i的值改变(有意或无意的,
//虽然不会改变实际调用处的值),特别是无意的,可能会引用一些难以发现的BUG
public static void checkInt(int i)
{
i = 200;//这样是可以的,不会编译出错的
//do something
}
//如果是final 的话,在checkInt方法内部就没办法把i的值改变
//可以完全避免上面的问题
public static void checkInt(final int i)
{
i = 200;//这样是不可以的,会编译出错
//do something
}
//final 的引用类型方法参数
public static void checkLoginInfo(final LoginInfo login)
{
login = new LoginInfo();//错误,编译不过去
//do something
}
//非final的引用类型方法参数
public static void checkLoginInfo(LoginInfo login)
{
//没有任何问题
login = new LoginInfo();
//do something
}