首先在使用之前先安装lombok插件,因为了使用注解让它自动生成例如 get/set 方法,在编码阶段如果没有插件,不能显式调用方法,这里基于idea安装:
步骤:File ——》Settings——》Plugins. 搜索lombok,点击安装install
在平时的开发中创建JAVA对象(POJO),也就是JavaBean是再常见不过的工作了,一个普通的实体一般都会有对象的属性,以及属性对应的getter和setter方法,再加上构造函数、toString、hashCode、equals等等方法,简单的一个java对象,少则几十行,多着几百上千行,代码冗长,阅读性相对较差。lombok能很好的解决这个问题,消除代码的冗长。
想要使用lombok,需要引入坐标:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> </dependency>
lombok常用的注解:
@Data
是lombok中最常用的注释,集合了@ToString, @EqualsAndHashCode, @Getter和@Setter
注意点1: 同时使用@Data 和 @AllArgsConstructor 后 ,默认的无参构造函数失效,如果需要它,要重新设置 @NoArgsConstructor。
注意点2:当java对象有继承了父类方法的时候,需要同时使用@EqualsAndHashCode(callSuper=false),callSuper是指equals和hashCode是不是需要包含父类的属性,false为不包含父类属性。
@Getter、@Setter、@ToString、@EqualsAndHashCode、@NoArgsConstructor、@AllArgsConstructor 不再赘述
@NonNull
注解在属性上;标识属性是不能为空,为空则抛出异常。
@Slf4j
注解在类上;根据用户实际使用的日志框架生成log日志对象。
@Log4j
注解在类上;为类提供一个 属性名为 log 的 log4j 日志对象
@Cleanup
这个注释可用于确保释放分配的资源,当局部变量被注释为@Cleanup,任何后续代码都包装在try/finally块,该块确保在当前作用域结束时调用清理方法。(自动调用close()方法)
@Cleanup InputStream in = new FileInputStream(args[0]); @Cleanup OutputStream out = new FileOutputStream(args[1]);