IDEA中使用lombok
下载插件lombok插件, 然后引入lombok的maven坐标即可
lombok常用注解
@Data
注解在类上,提供类所有属性的 getting 和 setting、equals,canEquals,hashCode,toString 方法
@Setter
注解在类上为该类中所有属性提供 setting 方法(也可注解在属性上)
@Getter
注解在类上;为该类中所有属性提供 getting 方法(也可注解在属性上)
@ToString
注解在类上;为该类中所有属性提供 toString 方法(也可注解在属性上)
@NoArgsConstructor
注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor
注解在类上;为类提供一个全参的构造方法
@Cleanup
可以关闭流
@Accessors(chain=true)
可以使设置属性值的set方法返回当前调用该方法的对象实例,方便链式调用
假如我们要读取一个 txt文本文件,一般会这样写代码:
注意,这个文件句柄在使用完成之后是一定要手动 close的,否则就有可能资源泄漏。
有了Lombok之后,这种擦屁股活儿统统不用干了,一个 @Cleanup注解即可搞定
@Slf4j
贴到类上, 然后该类里面就可以使用log.xxx()记录日志了
打印日志时必须使用参数化信息的方式打印日志
log.info(“账号{},密码{}登录成功!”,account,password);
在使用lombok的时候, 如果需要使用lombok提供的@Sl4j注解记录日志, 则需要添加Slf4j相关依赖
使用SLF4J时报错SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”
此时只需要再添加一个依赖即可
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
@EqualsAndHashCode
为类自动生成hashCode和equals实现
@NonNull
Lombok的 @NonNull注解可以自动帮我们避免空指针判断。
该注解作用在方法参数上,用于自动生成空值参数检查,比如:
但是有了Lombok之后,事情就变得简单了,一个注解搞定:
@Builder
在没有用Lombok之前,我们假如想new一个对象,我们往往会这么做
(以上面的 Course类为例):
引进Lombok之后,我们只需要在 Course类上用上 @Builder注解:
则 Course类对象的创建即可使用 链式调用 的方式一行代码完成:
lombok.config配置文件
当在一个类继承了另外一个类, 在该类上添加@Data注解会警告提示有问题, 解决该问题的办法如下:
需要在src/main/java目录下创建一个lombok.config配置文件, 内如如下:
config.stopbubbling=true
lombok.equalsandhashcode.callsuper=CALL
再次查看继承的子类上面的@Data注解就没有警告提示了