Lombok的注解使用

Lombok是一款提升开发效率的Java插件,通过注解自动创建getter、setter、构造器等方法。常用注解包括:@NoArgsConstructor、@AllArgsConstructor、@EqualsAndHashCode、@ToString、@Getter、@Setter、@NonNull、@RequiredArgsConstructor、@Builder、@Data、@Value、@Synchronized及日志注解@Slf4j/@Log4j等。
摘要由CSDN通过智能技术生成

Lombok注解

前言

Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO)。在开发环境中使用Lombok插件后,Java开发人员可以节省出重复构建,诸如hashCode和equals这样的方法以及各种业务对象模型的accessor和ToString等方法的大量时间。对于这些方法,它能够在编译源代码期间自动帮我们生成这些方法,并没有如反射那样降低程序的性能。

它所有的增强都是通过注解实现,所以了解其使用主要了解一下注解即可

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <scope>provided</scope>
    <version>1.18.16</version>
</dependency>

常用注解

@NoArgsConstructor/@AllArgsConstructor

这两个注解很好理解,就是为该类产生无参的构造方法和包含所有参数的构造方法。当然,成员变量都是非静态的。另外,如果类中含有final修饰的成员变量,是无法使用@NoArgsConstructor注解的。

@EqualsAndHashCode

这个注解很好理解,用于生成生成hashCode()和equals()

@ToString

生成toString()方法

@Getter/@Setter

这一对注解从名字上就很好理解,用在成员变量上面或者类上面,相当于为成员变量生成对应的get和set方法,同时还可以为生成的方法指定访问修饰符,当然,默认为public

这两个注解直接用在类上,可以为此类里的所有非静态成员变量生成对应的get和set方法。如果是final变量,那就只会有get方法

@NonNull

这个注解可以用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。

@RequiredArgsConstructor

使用类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法

例子

@RequiredArgsConstructor
public class Example {
   

   @NonNull
   private Integer foo;
   private final String bar;
}

生成后

public class Example {
   
   @NonNull
   private Integer foo;
   private final String bar;

   public Example(@NonNull Integer foo, String bar) {
   
       if (foo == null) {
   
           throw new NullPointerException("foo is marked @NonNull but is null");
       } else {
   
           this.foo = foo;
           this.bar = bar;
       }
   }
}

@Builder

生成构建者(Builder)模式

例子

@Builder
public class Demo {
   
    private final int finalVal = 10;

    private String name;
    private int age;
}

生成

public class Demo {
   
    private final int finalVal = 10;
    private String name;
    private int age;

    Demo(String name, int age) {
   
        this.name = name;
        this.age = age;
    }

    public static Demo.DemoBuilder builder() <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值