Lombok笔记

Lombok

在写java代码时常常用到lombok 做一个简单记录

Lombok 能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString 方法。在源码中没有 getter/setter 方法,但是在编译生成的字节码文件中有 getter/setter 方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁。

举个例子

@Component
@RequiredArgsConstructor
public class ThankingService {

    private final Translator translator;

    public String produce() {
        return translator.translate("thank you");
    }
}

这么一段代码使用了注解@RequiredArgsConstructor (当然,需要先从lombok里import)

那么实际上这段代码是

@Component
public class ThankingService {

    private final Translator translator;

    public String thank() {
        return translator.translate("thank you");
    }

    /* Generated by Lombok */
    public ThankingService(Translator translator) {
        this.translator = translator;
    }
}

使用注解为类添加了一个构造函数

常用的注解如下:

  • @Data

为该类的所有属性自动生成 setter/getter、equals、anEcqual、hashCode、toString 方法,如为 final 属性,则不会为该属性生成 setter 方法

  • @Getter、@Setter

@Getter 和 @Setter 注解在属性上时,可以为相应的属性自动生成 Getter / Setter方法。

  • @ToString

类使用 @ToString 注解,Lombok 会生成一个 toString() 方法,默认情况下,会输出类名、所有属性(按照属性定义顺序),用逗号来分割。

  • @EqualsAndHashCode

默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成 equals 和 hashCode 方法,也能通过 exclude 注解来排除一些属性。

callSuper参数用于包含父类的所有equal和hashCode方法 即

@EqualsAndHashCode(callSuper = true)
  • @NonNull

该注解用在属性或构造器上,Lombok 会生成一个非空的声明,可用于校验参数,能帮助避免空指针。

  • @Cleanup

该注解能帮助我们自动调用 close() 方法,很大的简化了代码。

  • @NoArgsConstructor

自动生成无参构造器。

  • @AllArgsConstructor

自动生成全参构造器,如果变量使用了 @NonNull, 会进行是否为空的校验。

如果要改方法修饰符 则可以写为 @AllArgsConstructor(access = AccessLevel.PROTECTED)

  • @RequiredArgsConstructor

自动生成部分参数构造器。

RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法。生成的构造方法是private,如何想要对外提供使用可以使用staticName选项生成一个static方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值