V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cbdy
V2EX  ›  Java

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

  •  
  •   Cbdy · 2021-07-30 10:28:37 +08:00 via Android · 3648 次点击
    这是一个创建于 1219 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    现阶段建议可以入手了

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

    这个取决于人,不分语言
    我就刚接手一个有 5 个 HttpUtils 的项目
    其实只要 kotlin 少写点 inline function 的魔法就行,异常抛的行数都不对
    Cbdy
        14
    Cbdy  
    OP
       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
        15
    ztcaoll222  
       2021-08-02 11:38:29 +08:00
    @Cbdy #14 其实更习惯 feign 那种形式的,但这样就需要更完善的 interrupt 来实现,jdk 自带的不太完善
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:36 · PVG 04:36 · LAX 12:36 · JFK 15:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.