为什么要用final

coooliang 2011-08-25 09:18:10

public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

final UserInfo userInfo = (UserInfo) o;

if (UID != null ? !UID.equals(userInfo.UID) : userInfo.UID != null) return false;

return true;
}

我想请问一下为什么要用final?
final UserInfo userInfo = (UserInfo) o;
...全文
227 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsy999 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 cl61917380 的回复:]
Java code


public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

final UserInfo userInfo = (UserInfo……
[/Quote]

用final来修饰常量,是从机制上保护常量不会被修改;
建议程序员用大写字符标识常量,是从视觉上引起程序员关注:那是个常量不能再赋值。

你可以用定义普通变量的办法来定义“常量”,但是在使用上和后期的维护上,你会比别人更容易犯错;
同时,别人使用你写的类,也很难区别你定义的哪个是真正的变量,哪个是“常量”。

学计算机语言就是学规矩,练习写计算机程序就养习惯、守规矩。









coooliang 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zn85600301 的回复:]
仅从你给的代码中 看不出来加上final的实际用途
[/Quote]
这是电信的彩铃项目里的代码,Bean要在流中传输,这样和并发有关系吗?
keaixiaozhu7688 2011-08-25
  • 打赏
  • 举报
回复
只能修该该对象的property
jiaoeryilingsi 2011-08-25
  • 打赏
  • 举报
回复
能防止变量不被更改吧,不过这里没什么用处
贪睡的兔子 2011-08-25
  • 打赏
  • 举报
回复
加了 userInfo 就不能指向其它对象了 但可以修改对象本身内容
heweiAndPippo 2011-08-25
  • 打赏
  • 举报
回复
jdk 1.5之前,final能提高效率,现在已经不存在这问题了,所以没什么用。
naughty610 2011-08-25
  • 打赏
  • 举报
回复
在这里加final没什么用。
zn85600301 2011-08-25
  • 打赏
  • 举报
回复
仅从你给的代码中 看不出来加上final的实际用途
coooliang 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ljinshuan 的回复:]
保护该变量 使其不能被更改
[/Quote]
我的意思是不用final也可以吧。为什么还需要final呢?
ljinshuan 2011-08-25
  • 打赏
  • 举报
回复
保护该变量 使其不能被更改

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧