Java代码简化之lombok
Java代码简化之lombok
本文目录:
- lombok简介
- IDEA整合Lombok及使用
- Lombok常用注解解释
1. lombok简介
Project Lombok makes java a spicier language by adding ‘handlers’ that know how to build and compile simple, boilerplate-free, not-quite-java code.
即Lombok通过增加一些“处理程序”,可以让java变得简洁、快速。
Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。
2. IDEA整合Lombok及使用
① IDEA整合Lombok
步骤:
- IDEA界面 --> Files --> Settings -> Plugins --> Browse repositories… --> lombok --> Install
- 安装后重启IDEA即可。
图示:
② Lombok的简单使用
- 在pox中添加依赖。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version> //version自选
</dependency>
- JavaBean添加注解即可生效。
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain = true)
public class Book {
// 定义一个entity
private Integer id;
private String bookName;
private double price;
}
这样就可以在完成JavaBean的代码编写,BookDemo类就具有了构造器、getter/setter、equals、hashcode、toString方法
如下图:
3. Lombok常用注解解释
- @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
- @Setter :注解在属性上;为属性提供 setting 方法
- @Setter :注解在属性上;为属性提供 getting 方法
- @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
- @NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
- @AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
- @Cleanup : 可以关闭流
- @Builder : 被注解的类加个构造者模式
- @Synchronized : 加个同步锁
- @SneakyThrows : 等同于try/catch 捕获异常
- @NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
- @Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
其中:@Accessors:注解在类或者属性上;主要用于控制生成的getter和setter。
- fluent boolean值,默认为false。此字段主要为控制生成的getter和setter方法前面是否带get/set
- chain boolean值,默认false。如果设置为true,setter返回的是此对象,方便链式调用方法
- prefix 设置前缀 例如:@Accessors(prefix = “abc”) private String abcAge 当生成get/set方法时,会把此前缀去掉