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

229 天前
 Oxonomy

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

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

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

11415 次点击
所在节点    Java
114 条回复
nxforce
229 天前
var 表达力是差了点,可以一般用在简单的局部变量里的临时变量,并且命名要带上类型字眼。

还有一种情况,就是多重泛型嵌套的情况下,这个可以简化一点点写法。

其他情况一律不用了。
k9982874
229 天前
代码是给人看的,机器能毫秒级推导,人脑能?
给你一个别人的模块去维护,里面全是 var 你骂不骂娘
dddd1919
229 天前
var 这个关键字在脚本语言看来都是多余,既然不需要声明类型那直接命名赋值就完了,a = 1
话说回来,代码体量上来了,变量声明类型显然更易读,var 是写的爽(也并没太爽),后面读起来就要挠头了
fredweili
229 天前
不同公司和项目的代码规范而已,爱用就在自己的项目尽情的用
Ayanokouji
229 天前
确实不好用,比如泛型,后者后面很长的一堆 stream
yanghanlin
229 天前
@DOLLOR Lombok 有 val 哦
chendy
229 天前
@yazinnnn0 有一说一,这个也就看着复杂其实结构很清晰
但是如果没有后面这一串 IDE 补的类型信息,后人维护代码的时候,起手一个点,然后就不知道改接啥了
flytsuki
229 天前
习惯问题吧,我写 C#起手就是一个 var
635925926
229 天前
因为然并卵,真正的动态语言应该像 php 那样。啥关键字都不用写。
liuzhaowei55
229 天前
我用 Java 就是为了写样板代码来的,不想用 kotlin 也是基于这个原因
Sodacooky
229 天前
用过 cpp 的 auto 过来还是能接受 var 的,但也是看场合使用。比如冗长的 new 语句和增强 for 循环里面,看一眼就知道是什么类型,其他情况下就很少用了。
比起这个,2025 年了还有很多 JavaBoy(或者说 SpringBoy?)还不知道有 var 才是更值得担心的。
syubo2810
229 天前
var 不 var 有什么关系,我也用过很多早就支持 var 语言,正常写代码你定义这个变量时候早知道类型的,写 var 和指定类型没啥区别
nealHuang
229 天前
var 的作用我理解就是左对齐,排版好看,不过可能影响一些可读性吧
litchinn
229 天前
用过一次,但出现了别人改了代码居然没有编译错误导致 bug 的情况,就再也不用了
var Tuple; var Triple
HojiOShi
229 天前
我写 Java 也喜欢到处用 var ,如果这都不用,那写起来真是太枯燥了。
reavid
229 天前
因为每个 Javaer 要遵守一些规范,其中之一就是强类型。你自嗨随便你,但是企业级项目不是你一个人写代码的,你看到满屏幕别人写的 val ,会是什么感受?
fengpan567
229 天前
对不起,我只用 Object
InkStone
229 天前
@fangxisama var 只是把显式类型标注变成了自动类型推导,也还是静态类型。

新一点的静态类型语言(也几乎天然都是强类型语言),几乎没有需要显式写类型的。因为时代已经不一样了……
TanKuku
229 天前
@fengpan567 #37 var 和 Object 可不是一回事,var 还是具体类型
purringpal
229 天前
尊重原项目风格,基本操守。但是 2025 年了写代码还在纠结这种鸡毛蒜皮的事情,也是浪费生命。

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

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

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

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

© 2021 V2EX