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

如何快速重写 equals 方法

  •  
  •   ShawyerPeng · 2020-04-04 20:18:06 +08:00 · 2300 次点击
    这是一个创建于 1695 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求助各位大佬,IDE 默认生成的 equals 方法是调用 Objects.equals(),对于 Timestamp/BigDecimal 等的比较会有问题,需要改成 compareTO(),如果是很复杂实体类嵌套实体类,每个数据库映射的实体类有几十个字段,手动写的话工作量太大,是否有工具能根据某一个类指定不同的比较方式?

    image.png

    image.png

    4 条回复    2020-04-05 11:29:54 +08:00
    chendy
        1
    chendy  
       2020-04-04 21:57:11 +08:00
    调整反序列化的方法,让这些字段可以直接 equals,应该更方便一些
    maninfog
        2
    maninfog  
       2020-04-04 22:01:50 +08:00 via iPhone
    Kotlin data class 真香,可惜楼主是 Java,可以找下有没有相关的插件
    superrichman
        3
    superrichman  
       2020-04-04 22:07:34 +08:00 via iPhone
    通过反射拿到 class 名称,特殊的 class 特殊处理,其它 class 调用默认的 equals 。这样行不?
    tairan2006
        4
    tairan2006  
       2020-04-05 11:29:54 +08:00 via Android
    Lombok
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1054 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:15 · PVG 07:15 · LAX 15:15 · JFK 18:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.