关于频繁使用 Java 的 final 关键词

2019-08-17 05:15:34 +08:00
 cassyfar
代码里每一个只 declare 一次然后再不去修改的变量都必须加上 final 吗?大家有什么看法?
2542 次点击
所在节点    问与答
9 条回复
yidinghe
2019-08-17 07:25:22 +08:00
设计上确实不能变化的才要加。比如某个类会作为 hashmap 的 key,而 hashcode 的计算是来自其成员的组合,那么这个类的所有成员都必须是 final
mx1700
2019-08-17 08:50:33 +08:00
是好习惯
BCy66drFCvk1Ou87
2019-08-17 10:11:10 +08:00
《 Java 并发编程实战》里面有说到如何安全地发布变量,final 关键字在一些时候非常重要
tachikomachann
2019-08-17 10:22:05 +08:00
这样就不会有共享变量的并发问题
mxalbert1996
2019-08-17 10:27:25 +08:00
在写 kotlin 的时候如果可以用 val 的变量你用了 var 的话 IDE 都会标黄提示你修改。
niubee1
2019-08-17 11:10:42 +08:00
一开始就养成用 Immutable 来定义中间量的话,就不会怕后面自己坑自己了。
DeweyReed
2019-08-17 11:28:49 +08:00
不这么做,IDE 和 Lint 都会提警告的呀!
mringg
2019-08-17 11:30:17 +08:00
这是一个好习惯吧
lyog
2019-08-17 11:44:47 +08:00
基础类型这样没问题,但是像 map,list,自己定义的实体等等,个人感觉 final 没有啥意义,只 final 了地址,里面的内容还是可以进行 add,put,set 等操作

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/592610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX