前言
Lombok是一个开源项目,其使用简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,特别是对于POJO。
Lombok的官网:https://projectlombok.org/
在官网上还有一个简短的视频讲解,介绍了Lombok的功能及使用方法。
Lombok安装
使用 Lombok 是需要安装的,如果不安装,IDE 则无法解析 Lombok 注解。先在官网下载最新版本的 JAR 包,现在是 1.16.16版本。
安装方式有两种:自动安装和手动安装,推荐自动安装。
1. 双击下载下来的JAR包安装Lombok(推荐)
双击后,Lombok会发现已安装好的IDE,然后按照Lombok的指示进行安装。如果Lombok无法发现IDE,则可以使用第二种方法进行安装。
2. IDE手动安装Lombok
将 lombok.jar 复制到eclipse.ini 所在的文件夹目录下,然后编辑eclipse.ini,在最后面插入两行:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
然后重启eclipse。
Lombok使用
Lombok 提供的注解不多,可以参考官方视频的讲解和官方文档:https://projectlombok.org/features/index.html
下面介绍几个我常用的 Lombok 注解:
@Data // 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 @Setter // 注解在属性上;为属性提供 setting 方法 @Getter // 注解在属性上;为属性提供 getting 方法 @Log4j // 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象 @NoArgsConstructor // 注解在类上;为类提供一个无参的构造方法 @AllArgsConstructor // 注解在类上;为类提供一个全参的构造方法
下面是简单示例:
不使用Lombok
1 public class User implements Serializable { 2 /** 3 * 4 */ 5 private static final long serialVersionUID = -1332337734725440336L; 6 7 private Long id; 8 9 private String username; 10 11 private String password; 12 13 private Date timestamp; 14 15 private String remark; 16 17 public User() { 18 super(); 19 } 20 21 public User(Long id, String username, String password, Date timestamp, String remark) { 22 super(); 23 this.id = id; 24 this.username = username; 25 this.password = password; 26 this.timestamp = timestamp; 27 this.remark = remark; 28 } 29 30 public Long getId() { 31 return id; 32 } 33 34 public void setId(Long id) { 35 this.id = id; 36 } 37 38 public String getUsername() { 39 return username; 40 } 41 42 public void setUsername(String username) { 43 this.username = username; 44 } 45 46 public String getPassword() { 47 return password; 48 } 49 50 public void setPassword(String password) { 51 this.password = password; 52 } 53 54 public Date getTimestamp() { 55 return timestamp; 56 } 57 58 public void setTimestamp(Date timestamp) { 59 this.timestamp = timestamp; 60 } 61 62 public String getRemark() { 63 return remark; 64 } 65 66 public void setRemark(String remark) { 67 this.remark = remark; 68 } 69 }
使用Lombok
1 @Data 2 @NoArgsConstructor 3 @AllArgsConstructor 4 public class User implements Serializable { 5 /** 6 * 7 */ 8 private static final long serialVersionUID = -1332337734725440336L; 9 10 private Long id; 11 12 private String username; 13 14 private String password; 15 16 private Date timestamp; 17 18 private String remark; 19 }
上面的两个 Java 类,从作用上来看,它们的效果是一样的,相比较之下,很明显,使用 Lombok 要简洁许多,特别是在类的属性较多的情况下,同时也避免了修改字段名字时候忘记修改方法名所犯的低级错误。最后需要注意的是,在使用 Lombok 注解的时候记得要导入 lombok.jar 包到工程。