Lombok主要作用是解放实体类,减小我们不必要的一些自动生成的getter and setter方法。
pom添加相关依赖(之前最好安装Lombok在相关IDE的插件)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
下面是相关实体类,我这里写了一个builder类型
package com.cwnu.javajeeks;
import lombok.*;
/**
* Created by rey on 2018/1/20.
* 如果一个构造函数或工厂模式拥有太多的可选参数,那么Builder模式是一个很好的选择。
* 是哦,这是一种好的思想额~ 创建对象的内容一目了然
*/
@Builder
@Getter
@ToString
@EqualsAndHashCode
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class Person {
@NonNull
private final String lastName;
@NonNull
private final String firstName;
@NonNull
private final Integer age;
private static Person JOHN = Person.builder().lastName("yang").firstName("li").age(25).build();
public static void main(String[] args) {
System.out.println(JOHN);
}
}
lombok官网还有更多有意思的例子,大家可以看看,很多都可以用到。
2018-04-28更新
今天搜java黑科技的时候居然看到V2EX上面有一篇帖子,但是仔细一看内容发现全是讨论lombok的[捂脸],大家可以衍生阅读了解一下。题目为:Java最近有没有什么黑科技
我们还是回到技术本质上来,lombok其实还有很多用处,举一个例子:在日志系统中, 比如我们使用的slf4j 我们只需要在类名上面使用这个注解@Slf4j,就不需要繁琐的变量声明,并且在代码中我们直接使用log.info/debug 就可以了
@Slf4j
public class PriceController{
log.info("expert area ...")
}
@slf4j注解的含义相当于我们经常写在类里面的
private static final Logger log = Logger.getLogger(PriceController.class);
这样我们访问就可以看到相应的日志信息了