最近用 Java14 的 Records 重构了一下几个项目

2021-07-30 10:28:37 +08:00
 Cbdy

用下来相关生态对 Records 支持得很好了,比如 Jackson 、Spring 全家桶等常用的库、框架,都给出了对应的支持,用下来体验很好

现阶段建议可以入手了

3497 次点击
所在节点    Java
15 条回复
fkname
2021-07-30 10:32:00 +08:00
等 17 出来再换 哈哈
Cbdy
2021-07-30 10:41:20 +08:00
@fkname 等菜上全了再吃的感觉吗?
qW7bo2FbzbC0
2021-07-30 10:55:19 +08:00
c# 也有 records,最直觉的感官是 debug 时直接 ToString()就有可接受的人性化输出,不像之前需要 JsonConvert
Kyle18Tang
2021-07-30 15:12:49 +08:00
17 正式发布就升级
guisheng
2021-07-30 15:24:16 +08:00
我 11 都还没推上来 就要用 17 了吗……
rayw0ng
2021-07-30 18:22:48 +08:00
直接 Kotlin/Java 混合开发多香,data class 跟 Record 很像。
MakHoCheung
2021-07-30 21:43:36 +08:00
现在 kotlin 对比 Java 吸引我的只有扩展函数和尾随闭包了,还有两者的结合。不过说实话,kotlin 语法太多了,很多人说用得爽,但是当团队中一个人写得龙飞凤舞的时候就很不适合其他同事阅读
echo1937
2021-07-31 08:55:59 +08:00
等着 JDK17,一来 LTS,二来也是下半年快了。
dreamramon
2021-07-31 11:26:45 +08:00
等 17 上来了,就全线升级。确实很好用。
dreamramon
2021-07-31 11:28:15 +08:00
@MakHoCheung kt 不适合大项目的(大项目定义:超过 5 个 java 研发,并且会有不同的人维护同一段代码的需求),kt 写起来爽,重构或者 fix,就是自己给自己增加工作量。
sprite82
2021-07-31 11:43:23 +08:00
不是很理解 Record 的应用场景,每次定义所有字段都要赋值,相当于全参构造函数,字段一多简直要命,而且不能更改字段值
Cbdy
2021-07-31 12:22:19 +08:00
@sprite82 它是 immutable 的,可以把一个 record 对象理解为一个值
micean
2021-07-31 12:33:17 +08:00
@dreamramon

这个取决于人,不分语言
我就刚接手一个有 5 个 HttpUtils 的项目
其实只要 kotlin 少写点 inline function 的魔法就行,异常抛的行数都不对
Cbdy
2021-07-31 15:43:47 +08:00
@micean 说起来现在 JDK 自带的 HTTP Client 已经很好用了,不太需要引入其他 HTTP Client

https://github.com/cbdyzj/natrium/blob/main/common/src/main/java/nano/support/http/Fetch.java
ztcaoll222
2021-08-02 11:38:29 +08:00
@Cbdy #14 其实更习惯 feign 那种形式的,但这样就需要更完善的 interrupt 来实现,jdk 自带的不太完善

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

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

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

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

© 2021 V2EX