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

使用 lombok 时,两个字段(testName、testname)只生成了一组 getter/setter

  •  
  •   persona5 · 3 天前 · 1537 次点击

    TestEntity.java

    @NoArgsConstructor
    @Data
    public class TestEntity {
    
        private String testName;
        private String testname;
    }
    

    TestEntity.class

    public class TestEntity {
        private String testName;
        private String testname;
    
        public TestEntity() {
        }
    
        public String getTestName() {
            return this.testName;
        }
    
        public void setTestName(final String testName) {
            this.testName = testName;
        }
    
        ...
    }
    

    请问这是什么原因?

    第 1 条附言  ·  3 天前
    1. lombok 1.18.12 ,JDK 11, IDEA 2020.2.1, 最新版本插件

    2. 不是我写的,旧项目要修改,拿出来编译的时候发现的。

    3. 能看出来八成是命名问题,但是想知道具体的原因,所以来问问。
    第 2 条附言  ·  3 天前
    https://github.com/rzwitserloot/lombok/issues/2130

    https://projectlombok.org/features/GetterSetter

    No method is generated if any method already exists with the same name (case insensitive) and same parameter count.
    21 条回复    2020-09-16 17:59:47 +08:00
    liushaokang
        2
    liushaokang   3 天前
    左转 issues
    li517316684
        3
    li517316684   3 天前
    没导对包吧
    hejawy
        4
    hejawy   3 天前
    为啥要这么命名?没事找事?
    persona5
        5
    persona5   3 天前
    @li517316684 导包正确,不是 import 错误的问题


    @hejawy 不是我写的,旧项目要修改,拿出来编译的时候发现的
    dovme
        6
    dovme   3 天前
    你这么命名真的会被人打死的
    Kilerd
        7
    Kilerd   3 天前
    项目上用 lombok 1.18.12 没有出现这个问题,可以正常提示。 请贴出你的 lombok 版本。
    Qlccks2
        8
    Qlccks2   3 天前
    看来你自己知道命名有问题了
    persona5
        9
    persona5   3 天前
    @Kilerd lombok 版本相同,JDK 11, IDEA 2020.2.1, 最新版本插件
    hejawy
        10
    hejawy   3 天前
    @persona5 重构它!
    persona5
        11
    persona5   3 天前
    @Kilerd 是的,IDE 中可以正常提示,但是不能通过编译。
    talen666
        12
    talen666   3 天前
    会不会 testname 没有用到。。
    Jrue0011
        13
    Jrue0011   3 天前
    用 delombok 看看生成的代码
    persona5
        15
    persona5   3 天前
    @serical 感谢
    22k
        16
    22k   3 天前
    是不是驼峰名字然后认为了一个字段
    graffitist
        17
    graffitist   3 天前
    按道理来说,就算你命名成这个样子
    也会有两个吧?
    getTestName
    getTestname

    没注意过
    flowercoder
        18
    flowercoder   3 天前
    早就吃过 lombok 大小写的亏了
    getset 用插件生成一下难道不香吗?
    要么就全小写避免呗。
    Jooooooooo
        19
    Jooooooooo   3 天前
    (又一个不要用 lombok 的例子

    你用 idea 的自动生成 get set, 不会有问题
    shuqin2333
        20
    shuqin2333   3 天前
    吃过类似的亏
    aName
    生成的 get set 是 getAName 和 setAName
    手动用 idea 生成的是 getaName 和 setaName,lombok 生成的 get set 反射会有问题
    CantSee
        21
    CantSee   3 天前
    1.18.0 复现
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1104 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 19:45 · PVG 03:45 · LAX 12:45 · JFK 15:45
    ♥ Do have faith in what you're doing.