实体类还在使用Get、Set方法吗?试试Lombok的@Data提升代码可读性
目录
在传统的实体类中,通过使用getter/setter/toString
,如果是实体类的字段比较多,那么代码可读性较差,甚至出现遗漏getter/setter
的情况,目前IDEA 2020.3
以及SpringBoot 2.1.x
的版本都默认支持了Lombok
1、安装Lombok插件(IDEA 2020.3后不需要)
搜索lombok
安装插件
在setting->Build,Execution,Deployment->Compiler->Annocation Processors
中开启 Annocation Processors
2、引入POM
如果是SpringBoot 2.1.x
以后的版本,可以直接引入lombok
,不需要带上版本号:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency>
如果是SpringBoot 2.1.x
以前的版本,需要手动加上版本号,比如:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version></dependency>
3、Lombok注解说明
Lombok最常用的注解就是@Data
作用于实体类上,是@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor
的集合;
- @Getter/@Setter: 作用实体类上,生成所有成员变量的getter、setter方法;
- @ToString: 作用实体类上,重新toString()方法;
- @EqualsAndHashCode: 作用实体类上,覆盖默认的equals和hashCode
- @RequiredArgsConstructor: 生成包含final和@NonNull注解的成员变量的构造器;
- @NoArgsConstructor: 生成无参构造器;
- @AllArgsConstructor: 生成全参构造器;
4、@Data使用说明
实体类:
@Datapublic class User { public String username; public String nickname;}
Test类:
public class Test { public static void main(String[] args) { // 调用set、get赋值 User user = new User(); user.setUsername("admin"); user.setNickname("测试用户"); System.out.println("用户名为:" + user.getUsername()); // 打印实体的json,@Data重写了默认的ToString方法 System.out.println("实体内容:" + user); }}
效果: