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

开发了一个关于 BeanUtils 的插件,为了让我少点两下鼠标

  •  
  •   whoami9426 · 279 天前 · 1899 次点击
    这是一个创建于 279 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经常用到 BeanUtils 工具,但是没办法在编码的时候很方便的知道复制出了哪些属性 尤其是 review 别人代码时得分别看目标类型和源类型再比对一下共有的属性,于是我写了这个插件,也算偷点懒

    这个插件有什么用?

    • 只做一件事,为 BeanUtils.copyProperties 方法复制出的属性生成显式的注释

    为什么要用 BeanUtils?

    • 因为本人是个懒狗,的确有很多的方案做这件事,比如 Mapstruct,但是还是一行代码的方式更适合我这种懒狗
    • 同时我也希望别人用 BeanUtils.copyProperties 时也能知道发生了什么

    Idea 插件市场 直接搜索 BeanUtilsHelper

    插件地址

    插件演示

    https://imgur.com/DNX5b3N

    第 1 条附言  ·  279 天前

    感谢大家的建议和反馈,有好的想法或者问题可以在这个库 BeanUtilHelper 给我提issue, 也厚着脸跟大家求一个 star

    第 2 条附言  ·  275 天前

    吸收大家的建议和想法, BeanUtilHelper 1.0.4版本更新了以下功能

    • 一键生成 GetterSetter 代码,根据 BeanUtil.copyProperties 生成 GetterSetter 代码
    • 静态检查属性复制,提示属性名相同类型不一致的复制,提示没有相同属性的复制
    • 一键生成差异属性的注释,一键预览差异的属性,标识差异化属性,发现潜在问题

    一键生成 GetterSetter 代码 GetterSetter 差异预览 差异预览 静态检查 静态检查

    16 条回复    2024-03-19 09:42:25 +08:00
    chuck1in
        1
    chuck1in  
       279 天前
    不错,这个插件还挺适合哪种超级懒人,这样相当于都不用点进去看了。

    另外借宝地推销一下 Make Java Great Again!
    https://www.mjga.cc
    SilenceLL
        2
    SilenceLL  
       279 天前
    不支持新版吗
    yxisenx
        3
    yxisenx  
       279 天前
    添加的注释,没排除掉 ignoreProperties
    Aresxue
        4
    Aresxue  
       279 天前   ❤️ 1
    我一直有个想法没空去实现,对这种使用 copyProperties 方法的两个对象,解析其 class
    1.比对两个 class 的字段,然后将差异列出来,比如 target 有但是 source 没有的字段,还有同名字段但是类型不一样的字段(此类情况最好直接能调用 idea 的告警将类型不一样的字段告警出来);
    2.在点击 target 的 setxxx 方法时能把使用 copyProperties 方法的地方作为其引用。
    楼主要是能把这两个功能实现一下这个插件的价值会更大些。
    Pantheoon
        5
    Pantheoon  
       279 天前
    赞一个
    whoami9426
        6
    whoami9426  
    OP
       279 天前
    @yxisenx 添加了对 ignoreProperties 的支持,下个版本发布
    whoami9426
        7
    whoami9426  
    OP
       279 天前
    @Aresxue 好想法,加到 todo 了,后续版本更新上
    whoami9426
        8
    whoami9426  
    OP
       279 天前
    @SilenceLL 应该是支持的,你也可以直接下载插件用离线安装的方式安装
    wolfie
        9
    wolfie  
       279 天前
    `注释`是固定的,未来实体加属性会有问题。
    whoami9426
        10
    whoami9426  
    OP
       279 天前
    @wolfie 是的,再重新生成就行了,这个插件也只是让你快速 peek 看一下
    wolfie
        11
    wolfie  
       279 天前
    @whoami9426
    IDEA 有个插件叫 private-notes ,你可以考虑下是否可以搭配用。
    zhady009
        12
    zhady009  
       276 天前
    不如用 Jackson 还带类型转换(如果可以的话)
    whoami9426
        13
    whoami9426  
    OP
       275 天前
    @Aresxue 1.0.4 版本更新了 差异预览 静态检查 生成 SetterGetter 等功能,我想应该可以满足你提到的 1.2 两点了
    harrisonkang
        14
    harrisonkang  
       275 天前
    刚刚安装的插件,但是却是 1.0.3 版本,是还没发布么?
    whoami9426
        15
    whoami9426  
    OP
       275 天前
    @harrisonkang 1.0.4 版本还在审核中,预计要 2 天时间
    Aresxue
        16
    Aresxue  
       274 天前
    @whoami9426 very good
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:30 · PVG 05:30 · LAX 13:30 · JFK 16:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.