都已经 2025 年了,为什么 Java Boy 还是不能接受 var 关键字

2025 年 3 月 7 日
 Oxonomy

最近尝试在 PR 里面用了这个 Java10 就有的关键字,结果老外和国人都不能接受,让我改回去。

但是只要把变量命名写的足够表意,我觉得一定程度上是可以使用 var 关键字的。

难道 java boy 不写动态语言吗?

14232 次点击
所在节点    Java
114 条回复
yooomu
2025 年 3 月 7 日
我是完全没必要用,idea 直接 .var 就能自动帮我命名再加上类型,用什么 var
iintothewind
2025 年 3 月 7 日
我需要 Scala 风格的 val 和类型推断,然后成熟的 case class ,pattern-match ,不过分吧
sagaxu
2025 年 3 月 7 日
有 var 就得有 val ,大部分情况用 val
xboxv
2025 年 3 月 7 日
人家习惯了用筷子, 你问为什么不直接用手.
MossFox
2025 年 3 月 7 日
重点偏了,不是能不能接受的问题,在 pr 的时候是要遵循原项目的编码风格的。你跑去一个全是 var 的项目里面 pr 另一套风格的代码一样会被让改掉。
Leviathann
2025 年 3 月 7 日
@iintothewind java 现在偷的差不多了 也就 pattern matching 稍微弱了点,而且还把 scala 解构时根据参数顺序而不是名字解构的雷点也偷了
Al0rid4l
2025 年 3 月 7 日
虽然但是, var 哪里动态了...
Fatinora
2025 年 3 月 7 日
项目风格延续吧
iintothewind
2025 年 3 月 7 日
@Leviathann #6 值类型还是很不错的, 可惜跟泛型擦除冲突了, 唉.
Oxonomy
2025 年 3 月 7 日
@Al0rid4l 我想说的其实是,类似于 python 和 js 这种语言,即使你不写类型,也能声明变量。
Oxonomy
2025 年 3 月 7 日
@MossFox 这倒是。。但是我觉得不使用 var 关键字,是 javaer 思想太过保守。 所以即使起新项目,也没人使用 var 。
Vegetable
2025 年 3 月 7 日
提 PR 是好事儿,但是风格一致也是非常合理的要求。这可能不是人家不接受,而是不希望出现这种混合风格。
Oxonomy
2025 年 3 月 7 日
@Vegetable 是工作代码,peer review 。。

当然其他人也有槽点,比如直接把 Repository 层吞了,纠结包装类和基础类型用哪个, 可能是和老外的编程风格不一样吧
AV1
2025 年 3 月 7 日
@sagaxu
java 没有`val`,类似的功能要写成`final var`。
因为要多打一个单词,所以 java 开发者不太愿意用。
chendy
2025 年 3 月 7 日
老 Java 农不请自来,个人觉得这个关键字并无卵用,写的时候没爽到哪里去(因为有 idea 的.var ),改的时候还麻烦

其实在 java 自带这玩意之前,lombok 就已经有 var 和 val 了,某个项目里尝试使用过。自我感觉团队水平尚可,代码质量也不错。但是半年之后再看代码发现很多地方都看不懂,本来点类型跳转进去扫一眼就行,这回需要点方法然后点返回值类型扫一眼,然后和同事们交流了一下大家基本都是这个感觉,于是后来的代码里就不再用了
shuiguomayi
2025 年 3 月 7 日
@chendy 哈哈,有道理
kandaakihito
2025 年 3 月 7 日
因为 Java 项目大多是重业务的,一个小模块动不动就是几万行起步的业务代码,大概率还有一个产品经理在背后催进度。
这种情况下,类名也是可读性非常重要的一部分,满屏的 var 会直接把别人看红温。
yazinnnn0
2025 年 3 月 7 日

有一说一, 有时候业务复杂度就到这种程度了, 不用 var/val 推断, 标明了具体类型就有可读性了吗?

要是有人能光看类型就才出来这玩意儿是干啥的, 那你就是这个👍
qxmqh
2025 年 3 月 7 日
说实话,我就挺讨厌 这个 var 的。
qxmqh
2025 年 3 月 7 日
即使我写 go 也不喜欢。直接就是 xx:=xxx

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

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

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

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

© 2021 V2EX