项目中经常使用 bean,entity 等类,绝大部分数据类类中都需要 get,set,toString,equals 和 hashCode 方法,虽然 eclipse 和 idea 开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果 bean 中的属性一旦有修改,删除或增加时,需要重新生成或删除 get/set 等方法,给代码维护增加负担.而使用了 lombok 则不一样,使用了 lombok 的注解 (@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode 或 @Data) 之后,就不需要编写或生成 get/set 等方法,很大程度上减少了代码量,而且减少了代码维护的负担.故强烈建议项目中使用 lombok,去掉 bean 中 get,set,toString,equals 和 hashCode 等方法的代码.
一,实战
1. 安装 lombok 插件:
具体流程如图:
1.1
1.2
1.3
2. 添加 lombok 的 maven 的 pom.xml 依赖:
[java] view plain copy
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
1.16.10</version>
</dependency>
3. 示例代码 Student.java
[java] view plain copy
package com.lombok.demo;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* Created by zhangzh on 2017/2/8.
*/
@Setter
@Getter
@ToString
@EqualsAndHashCode
public class Student {
private String name;
private int age;
private String male;
private String studentNo;
}
4. 测试类 LombokTest.java
[java] view plain copy
package com.lombok.demo;
import lombok.extern.java.Log;
/**
* Created by zhangzh on 2017/2/8.
*/
@Log
public class LombokTest {
public static void main(String[] args) {
Student student = new Student();
student.setAge(27);
student.setMale("man");
student.setName("lance");
student.setStudentNo("2017");
System.out.println(student.toString());
Student student2 = new Student();
student2.setAge(27);
student2.setMale("man");
student2.setName("lance");
student2.setStudentNo("2017");
System.out.println(student.equals(student2));
student2.setStudentNo("2018");
System.out.println(student.equals(student2));
log.info("lombok test");
}
}
5. 输出结果:
[java] view plain copy
Student(name=lance, age=27, male=man, studentNo=2017)
true
false
lombok test
结果分析,如果没有添加 @Setter 注解,则 LombokTest 中的 student 示例无法使用 setAge() 等方法.使用 lombok 之后,省去了许多没必要的 get,set,toString,equals,hashCode 代码,简化了代码编写,减少了代码量.
另外 @Data 注解的作用相当于 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode 的合集.
另外 @Log 省去了在 LombokTest 中添加 getLogger 的如下代码:
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
看,简单吧!
来源: http://www.bubuko.com/infodetail-2472861.html