一、Lombok简介
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法,官网有详细的使用说明和视频.
lombok官网:https://projectlombok.org/
jar包下载路径:https://projectlombok.org/download
lombok features:https://projectlombok.org/features/all
二、安装
1.下载 lombok.jar
2.官网说是可以双击安装,,,我用这种方法不可行
2.手动安装
(1)将lombok.jar移到eclipse的安装目录
(2)在eclipse.in文件最后加入下面两行
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
=============
-javaagent:xxx.jar 的jar名称 需要与根目录下的jar名一致,
不一致,可能会出现eclipse无法启动的情况。
(3)重启eclipse,进行代码测试
三、Lombok的使用
安装lombok之后,不要忘记要把lombok.jar这个包加入到你的项目中.
使用Maven的同学添加如下依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
接下来就可以在我们的类中使用注解的方式给类添加setter/getter方法或者构造方法,下面给同学介绍比较常用的一些注解.
@Getter and @Setter
你可以给任意字段添加@Getter/@Setter的注解,让lombok给我们自动的生成setter/getter方法.
没用lombok前你的代码需要这样写:
01 public class GetterSetterExample {
02 private int age = 10;
03 private String name;
04
05 public int getAge() {
06 return age;
07 }
08
09 public void setAge(int age) {
10 this.age = age;
11 }
12
13 protected void setName(String name) {
14 this.name = name;
15 }
16 }
使用了lombok后你的代码是这样的:
01 import lombok.Getter;
02 import lombok.Setter;
03 public class GetterSetterExample {
04 @Getter@Setter
05 private int age = 10;
06 @Getter@Setter
07 private String name;
08 }
使用了Setter@Getter
,瞬间代码简洁了很多,而且也不用担心字段修改后,对应的setter和getter方法需要修改. Setter@Getter
可以贴在字段上,是给该字段提供setter/getter方法.如果贴在类上,表示给该类下的所有字段添加setter和getter方法,上面的代码还可以这样写:
01 import lombok.Getter;
02 import lombok.Setter;
03 @Getter@Setter
04 public class GetterSetterExample {
05 private int age = 10;
06 private String name;
07 }
@ToString
所有的类都可以使用@ToString注解来生成该类的toString()方法.默认情况下,它将打印你的类名以及每个字段,按逗号分隔.
没用lombok前你的代码需要这样写:
01 public class ToStringExample {
02 private int age;
03 private String name;
04 @Override
05 public String toString() {
06 return "ToStringExample [age=" + age + ", name=" + name + "]";
07 }
08 }
使用了lombok后你的代码是这样的:
01 @ToString
02 public class ToStringExample {
03 private int age;
04 private String name;
05 }
@NoArgsConstructor and @AllArgsConstructor
@NoArgsConstructor
:可以给我们定义的类自动的添加无参构造函数. @AllArgsConstructor
:可以给我们定义的类添加所有参数的构造函数.
没用lombok前你的代码需要这样写:
01 public class ConstructorExample {
02 private int age;
03 private String name;
04 public ConstructorExample() {
05 super();
06 }
07 public ConstructorExample(int age, String name) {
08 super();
09 this.age = age;
10 this.name = name;
11 }
12 }
使用了lombok后你的代码是这样的:
01 @NoArgsConstructor@AllArgsConstructor
02 public class ConstructorExample {
03 private int age;
04 private String name;
@EqualsAndHashCode
默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。
@Data
是快捷方式,代表@ToString, @EqualsAndHashCode, @Getter(所有字段), @Setter(所有字段)
没用lombok前你的代码需要这样写:
01 public class DataExample {
02 private int age;
03 private String name;
04 public int getAge() {
05 return age;
06 }
07 public void setAge(int age) {
08 this.age = age;
09 }
10 public String getName() {
11 return name;
12 }
13 public void setName(String name) {
14 this.name = name;
15 }
16 @Override
17 public String toString() {
18 return "DataExample [age=" + age + ", name=" + name + "]";
19 }
20 }
使用了lombok后你的代码是这样的:
01 @Data
02 public class DataExample {
03 private int age;
04 private String name;
05 }