摘要
Lombok可以通过注解简化消除一些必要但是繁琐的Java代码,使得Java项目代码变得更加简洁。
一、依赖
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
二、安装Idea插件
File->settings->Plugins 搜索 Lombok plugin
安装该插件即可识别对应的注解效果。
三、使用
package com.lanxuewei.utils.lombok;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import java.io.Serializable;
/**
* @author lanxuewei Create in 2018/11/16 15:15
* Description: lombok utils、tests
*
*/
@Slf4j
@ToString
@Data
@NoArgsConstructor
// @AllArgsConstructor
public class LombokTest implements Serializable {
private static final long serialVersionUID = -4091905868790978820L;
@Getter
@Setter
private int id;
@Setter
private String name;
@Test
public void test() {
LombokTest lombokTest1 = new LombokTest();
lombokTest1.setName("test");
lombokTest1.setId(1);
log.info("lombok.id = {}", lombokTest1.getId());
log.info("lombok.name = {}", lombokTest1.name);
log.info("lombok = {}", lombokTest1);
}
}
四、注意
@Cleanup可以解决流自动关闭问题,存在一个小问题:
官网给出了提示,如果你的代码中出现了异常,那么会触发cleanup方法抛出异常,导致把原始异常吞掉,这样就导致你在上层不知道发生了什么事情。但是如果说你是在调用close方法的时候出了异常,那么Cleanup这个annotation是不会把异常吞掉的。同时,官网也指出,作业也没有找到更好的方式去解决这个问题,如果他们找到了会立刻fix这个问题,否则也就只能等待Java 有可能在Update的时候出现新的解决方案。
五、官网api
https://projectlombok.org/features/all