Lombok 是一种 Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO)。 它通过注释实现这一目的。一个标准的Java bean 一般具有若干属性,每个属性具有getter()和setter()方法, 通常还会有一个toString() 方法、一个 equals() 方法和一个 hashCode() 方法。这样一来,代码就显得冗余。

安装 Lombok

使用Lombok 首先要进行安装,本例介绍 myeclipse 的安装方法,首先官网下载 lombok.jar

  • 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下
  • 打开 myeclipse.ini / eclipse.ini,在最后加上以下两行并保存:    -Xbootclasspath/a:lombok.jar    -javaagent:lombok.jar
  • 重启 myeclipse / eclipse 即可

使用 Lombok

现在,就可以在 IDE 中使用Lombok了,看以下代码:

public class User {
	private String username;
	private String password;
	private int age;
}

以上是一个简单的 Java bean 的典型开始。可以为每个属性添加 getters 和 setters。 然后再添加一个 equals() 方法、一个 toString() 方法和一个 hashCode() 方法。 有了 Lombok,无需自己完成上述操作。相反,只需添加一个注释:@Data

@Data
public class User {
	private String username;
	private String password;
	private int age;
}

Lombok 注解

Lombok 注解可参看 帮助文档 下面介绍几个常用的 lombok 注解

  • @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
  • @Setter:注解在属性上;为属性提供 setting 方法
  • @Getter:注解在属性上;为属性提供 getting 方法
  • @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
  • @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
  • @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

当使用注解的时候,我们看看Lombok到底干了些什么

public class User {
	private @Getter @Setter String username;
	private @Getter @Setter String password;
	private @Getter @Setter int age;
}

License Badge

甚至可以这样写:

@Data
public class User {
	private String username;
	private String password;
	private int age;
}

License Badge

可以看出,在编译期,Lombok根据所写的annotation,为所有属性加上了getter setter,甚至是hashCode,equals和toString。

参考资料: