Lombok builder 继承属性

Image by Elena Rogulina from Pixabay

前言

最近在用lomBokbuilder的时候遇到这样一个问题:就是单用一个@builder注解不会继承父类的属性;那如何解决呢???

正文

接下来看看几种解决的方式吧!

方式一

  1. parent类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

@Setter
@Getter
public class Parent {
    private String userName;
    private String password;
    private String url;

    public Parent(String userName, String password, String url) {
        this.userName = userName;
        this.password = password;
        this.url = url;
    }
}

  1. Child类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Getter
@Setter
@ToString
public class Child extends Parent {
    private String address;
    private String phone;

    @Builder
    public Child(String userName, String password, String url, String address, String phone) {
        super(userName, password, url);
        this.address = address;
        this.phone = phone;
    }
}

注意点:

  1. 这里需要注意的是@Builder注解所放置的位置;
  2. @ToString并不会将父类的属性输出
  3. 如果要获取父类的属性值,父类添加@Getter注解即可

方式二

  1. Parent类:
1
2
3
4
5
6
7
8
9
10

@SuperBuilder
@Getter
public class Parent {
    private String userName;
    private String password;
    private String url;

}

  1. Child类:
1
2
3
4
5
6
7
8

@SuperBuilder
@Getter
public class Child extends Parent {
    private String address;
    private String phone;
}

最后

灌水文

我的博客:
我的GitHub:

参考

  1. java - Lombok @Builder继承解决方法
  2. 实体继承与@Builder注解共存
  3. Lombok @Builder注解与继承
坚持原创技术分享,您的支持将鼓励我继续创作!