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

229 天前
 Oxonomy

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

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

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

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

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

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

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

要是有人能光看类型就才出来这玩意儿是干啥的, 那你就是这个👍
qxmqh
228 天前
说实话,我就挺讨厌 这个 var 的。
qxmqh
228 天前
即使我写 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