欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lombok的基本使用

程序员文章站 2022-07-12 13:36:18
...

lombok是一个可以帮助我们大幅度简化代码的Java代码工具。
比如JavaBean中private的成员变量需要getter和setter方法,大量的getter和setter方法在一个类中会让我们的类显得非常长。使用lombok工具就可以省去这些代码。

使用方法

在pom文件中添加配置

此处未指定版本,你也可以指定版本

<dependency>
	<groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

idea安装lombok插件

此步骤也可省略,不安装插件只是在idea的Structrue窗口看不到lombok自动生成的方法,安装插件之后可以看到由lombok自动生成的方法。
lombok的基本使用
安装步骤
打开设置 =》Plugins ,搜索lombok,点击install,重启idea。
lombok的基本使用

常用注解

@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter 注解在类或字段,注解在类时为所有字段生成getter方法,注解在字段上时只为该字段生成getter方法。
@EqualsAndHashCode 注解在类,生成hashCode和equals方法。
@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
@RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@NoArgsConstructor 注解在类,生成无参的构造方法。
@NonNull 注解在类,定义字段不能为空
@Builder 声明实体,表示可以进行Builder方式初始化

@NoArgsConstructor

相当于没使用lombok时的代码

public class PersonDTO {
    @NonNull
    private String name;
    private Integer age;

    public PersonDTO() {}
}

@RequiredArgsConstructor

相当于没使用lombok时的代码

public class PersonDTO {
    @NonNull
    private String name;
    private Integer age;
    
    public PersonDTO(String name) {
        this.name = name;
    }
}

@AllArgsConstructor

相当于没使用lombok时的代码

public class PersonDTO {
    @NonNull
    private String name;
    private Integer age;

    public PersonDTO(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
}

@Builder

传统实例化对象的方式

PersonDTO dto = new PersonDTO();
dto.setName("雪");
dto.setAge(18);

使用@Builder模式,这种方式更优雅。但是@Builder会将类的无参构造方法私有化,如果再想使用new PersonDTO();需要自己手动在类中定义一个无参构造方法。如果这个类需要能被当作一个Bean返回到前端还需要能够被序列化,我们需要给类再加一个@Getter。
一般地,我们可以这样设计实体

@Builder
@Getter
public class PersonDTO {
    private String name;
    private Integer age;
}

Builder模式赋值新对象

PersonDTO dto = PersonDTO.builder()
                .name("雪")
                .age(18)
                .build();
相关标签: JAVA java