Lombok 是一种 Java Archive (JAR) 文件,可用来消除 Java 代码的冗长。java
一个标准的 Java bean,一个典型的 Java bean 通常具备几个属性,getter 和 setter。一般还会有一个 toString()
方法、一个 equals()
方法和一个 hashCode()
方法。maven
为了消除代码行,Lombok 使用注释来标识类和 Java 代码块。全部的 getter、setter 以及其余三个方法都是在编译时被暗示并包括进来的。spa
Lombok 还让您得以简化代码的其余部分 — 不单单是 Java bean。好比,还能够减小 try/catch/finally 块内以及同步方法内的冗余代码。.net
方式一:添加lombok的maven依赖插件
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven</artifactId> <version>1.16.18.1</version> </dependency>
方式二:手动添加lombok.jar.code
建立一个简单的JavaBeanxml
public class Food{ private String name; private int size; private String color; private String style; }
使用@Data注解为上面的JavaBean添加getter、setter、equals、hashcode、toString等方法。对象
import lombok.Data @Data public class Food{ private String name; private int size; private String color; private String style; }
看编译后的.classget
在生成 getter/setter 方法时,Lombok 听从传统的标准。全部这些方法名都以 get 或 set 开头而且属性名都是大写的。固然,若是属性是一个 Boolean,状况例外。在这种状况下,getter 以 is 开始,而非 get。这是 Java bean 的一种标准实践。同步
为了消除 try/catch/finally 块的冗余,只需使用 @Cleanup 注释
public static void main(String[] args) throws IOException { @Cleanup InputStream in = new FileInputStream(args[0]); @Cleanup OutputStream out = new FileOutputStream(args[1]); }
这个代码块不只消除了 try/catch/finally 块,并且还关闭了开放流
Lombok 还能够减小同步方法所需的代码的冗余。很天然,这是用 @Synchronized 方法实现的。
@Synchronized private int foo() { //some magic done here return 1; }
若是用 @Synchronized
注释的这个方法是静态的,那么 Lombok 就会建立一个名为 $LOCK
的类对象,并会针对该对象同步这个方法。