使用lombok的链式设置父类属性

一、有两种方式:

1、使用@SuperBuilder注解

2、使用@Builder(toBuilder = true)注解

二、使用方式:

方式一:

子类:

@Getter
@Setter
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class A extendsB {

    private String mobilePhone;

    public A(Integer age,String name) {
        super(age,name);
        this.mobilePhone = mobilePhone;
    }
}

父类:

@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class B {

    private Integer age;
    private String name;
}

调用:

    public static void main(String[] args) {

        A build = A.builder().mobilePhone("-").age(0).name("a").build();

    }

方法二:

与方法一不同的是,构造函数使用@Builder(toBuilder = true)注解的方式

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public classA extends B {

    private String mobilePhone;

    @Builder(toBuilder = true)
    public A(Integer age,String name,String mobilePhone) {
        super(age,name);
        this.mobilePhone = mobilePhone;
    }
}

补充:

1、使用了@Builder之后,需要添加@NoArgsConstructor,因为@Builder会覆盖调无参构造器;

2、使用了@Builder之后,还需要注意设置成员属性不生效,需要通过@Builder.Default添加到属性上边;

3、@Builder并不支持对基类属性的构造,而 @SuperBuilder 就是为了解决这个问题而产生的,算是​​​​@Builder的升级版;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Lombok是一个用于简化Java开发的工具库,而@Data是Lombok中的一个注解,被用于自动生成类的getter、setter、equals、hashCode和toString等方法。 使用@Data注解可以避免手动编写这些繁琐的方法,提高开发效率。当我们在类上添加@Data注解后,Lombok会自动为该类生成getter和setter方法,并实现equals、hashCode和toString方法。 对于父类而言,如果我们在子类上使用@Data注解,则只会自动为子类生成对应的getter和setter方法,并没有实现equals、hashCode和toString方法。 若希望父类也能自动实现这些方法,我们需要在父类上同样添加@Data注解。这样一来,父类和子类都会自动实现getter、setter、equals、hashCode和toString等方法,减少了代码冗余,使代码更加简洁易读。 总之,使用Lombok的@Data注解可以消除我们在编写Java类时重复编写getter、setter、equals、hashCode和toString等方法的工作,提高了开发效率,使代码更加简洁、易读。无论是在父类还是子类上使用@Data注解,都能自动生成相应的方法,并减少了代码冗余。 ### 回答2: Lombok是一个开源的Java库,它通过使用注解来简化Java代码的编写。其中,@Data注解是Lombok中的一个注解,用于自动生成类的所有必要方法,如构造方法、getter和setter方法、equals和hashCode方法等。 在父类使用@Data注解,将会自动为父类生成以下方法: 1. 无参构造方法:该方法用于创建一个空的父类对象。 2. 全参构造方法:该方法用于创建一个包含所有属性值的父类对象。 3. getter和setter方法:这些方法分别用于获取和设置父类中的属性值。 4. equals方法:该方法用于判断两个父类对象的属性值是否相等。 5. hashCode方法:该方法用于获取父类对象的哈希码值。 6. toString方法:该方法用于返回父类对象的字符串表示。 通过在父类使用@Data注解,我们可以省去手动编写以上这些方法的工作,实现了代码的简洁性和可读性。同时,Lombok还可以通过其他注解用于定制生成的方法,如@RequiredArgsConstructor注解用于生成只含有必选属性的构造方法,@EqualsAndHashCode注解用于生成自定义的equals和hashCode方法等。 总之,使用Lombok的@Data注解可以简化父类的代码编写,提高开发效率,让我们更专注于业务逻辑的实现。 ### 回答3: lombok是一个用于简化Java代码的开源框架,主要用于减少冗余的getter和setter方法的编写,提高代码的可读性和简洁性。其中@data注解是lombok提供的一个注解,用于自动生成类的所有基本方法,包括getter、setter、toString、equals和hashCode等。 在父类使用lombok的@data注解,可以简化代码的编写,减少了重复的方法定义。当我们在父类中添加了@data注解后,lombok会根据类中的成员变量自动为我们生成对应的getter和setter方法。同时,它还会自动生成toString、equals和hashCode等方法,这些方法对于类的实例在打印输出、比较和哈希计算时非常有用。 使用lombok的@data注解还可以提高代码的可读性和维护性。在代码中,我们通常需要编写大量的getter和setter方法,这些方法的编写比较繁琐且容易出错。而使用lombok的@data注解后,我们只需要在类上添加该注解,就可以自动为类生成所有的方法,大大减少了代码量,使代码更加简洁和易读。 总而言之,lombok的@data注解在父类中的使用可以极大地简化代码的编写,减少了冗余的方法定义和重复劳动。它为我们自动生成了所有基本方法,提高了代码的可读性和维护性。因此,在日常的Java开发中,可以考虑使用lombok的@data注解来简化父类的编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值