已有101人关注
参数里面的final有什么作用?去掉之后好像也不影响什么
还有0人有此问题
发表在Java图书答疑 2017-08-17
是否精华
版块置顶:

参数里面的final有什么作用?去掉之后好像也不影响什么

分享到:
精彩评论 1
小禾斗
学分:7308 LV13
TA的每日心情
奋斗
2017-04-21 14:00:25
2017-08-18
沙发

读者朋友:

  您好,将方法的参数定义为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

}

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照