lombok的基本使用
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自动生成的方法。
安装步骤
打开设置 =》Plugins ,搜索lombok,点击install
,重启idea。
常用注解
@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();
上一篇: Lombok的使用
下一篇: SSD-Tensorflow学习