欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

@Builder注解无法构建父类中的字段

程序员文章站 2022-06-04 17:01:01
...

问题

@Data
@Builder
public class Animal {

    protected String name;
}

@Data
@Builder
public class Dog extends Animal {
    private String master;
}

class Test {
    public static void main(String[] args) {
        // 此时这里是会报错的,找不到.name()这个方法 
        Dog.builder().master("me").name().build();
    }
}

解决方法

使用@SuperBuilder注解

@Data
@SuperBuilder
public class Animal {

    protected String name;
}

@Data
@SuperBuilder
public class Dog extends Animal {
    private String master;
}

class Test {
    public static void main(String[] args) {
        // 此时是可以进行构建的
        Dog.builder().master("me").name("二哈").build();
    }
}

更多的问题

虽然这种方式可以解决,继承的普通类的问题,但是继承抽象类,实现接口时同样也存在这样的问题,目前还没有找到办法解决,如果有好办法,欢迎留言告知,多谢。。。

感谢支持

个人博客 之 @Builder注解无法构建父类中的字段
个人博客地址