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

文章目录

      • 问题
      • 解决方法
      • 更多的问题
      • 感谢支持
      • 我的个人博客,有空来坐坐

问题

@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注解无法构建父类中的字段

我的个人博客,有空来坐坐

http://www.wangyanan.online

你可能感兴趣的:(点点滴滴,Lombok,@Builder,@Builder继承问题)