为什么要使用lombok?
应用场景 :在JavaEE项目中经常使用bean,entity等类,绝大部分数据类中都需要生成get /set 方法、重载toString、 equals和hashCode方法。
使用优点 :
1.虽然在IDEA开发环境下都有自动生成这些代码的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get /set等方法,给代码维护增加负担。
2.即使需要在这些方法中需要做额外的操作,只需要在对应类中手动重写即可。
未使用lombok之前,我们如何做的?
在类中alt+enter,然后选择需要的方法。
如下:
public class Student { private String name; private String studentId; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } @Override public String toString() { return "Student{" + "name='" + name + '/'' + ", studentId='" + studentId + '/'' + '}'; } }
如何使用lombok?
一 在idea中安装lombok插件
1.依次点击Preferences - Plugins,搜索lombok,最后点击Lombok Plugin (对,就下载最多的那个)intall。
2.重启idea即可使用
二 在项目对于的xml文件中添加maven依赖
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
三 示例代码及说明
/** * 如果没有添加@Setter注解,则无法使用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()); */ @Setter @Getter @ToString @EqualsAndHashCode //@Data public class Student { private String name; private int age; private String male; private String studentNo; }
四 测试程序
@Log public class LombockTest { public static void main(String[] args) { //创建第一个学生对象 Student student = new Student(); student.setAge(19); student.setMale("male"); student.setName("Spring Boot"); student.setStudentNo("2017"); System.out.println(student.toString()); //创建第二个学生对象 Student student2 = new Student(); student2.setAge(19); student2.setMale("male"); student2.setName("Spring Boot"); student2.setStudentNo("2017"); //判断两个对象的引用是否相等 System.out.println(student.equals(student2)); student2.setStudentNo("2018"); System.out.println(student.equals(student2)); log.info("lombok test"); } }
五 运行结果
Student(name=SPring Boot,age=19,male=male,studentNo=2017) true false
ps:在使用了lombok之后,又重写了该方法,会覆盖此方法,代码就不贴了,亲测有效。
作者:tigerAndBull
链接:https://www.jianshu.com/p/39de2a8e4ae5