让人又爱又恨的Lombok,到底该不该用

1 简介Lombok,印尼的一个岛屿,龙目岛 。但在JAVA的世界里,它是一个方便的类库,能提供很多便利,因此得到许多人的青睐 。但也有不少反对声音 。这是为什么呢?

让人又爱又恨的Lombok,到底该不该用

文章插图
 
之前去龙目岛拍的日落 。
2 Lombok提供的便利一般我们在Java中用到POJO时,就很容易想到要用Lombok,如VO、DTO、DO等 。使用Lombok需要安装对应IDE的插件,同时需要引入依赖:
<dependency>  <groupId>org.projectlombok</groupId>  <artifactId>lombok</artifactId>  <version>1.18.10</version>  <scope>provided</scope></dependency>举个例子,如果不用Lombok,实现getter/setter、equals、hashCode、toString代码量非常大,如下所示:
package com.pkslow.basic.lombok;import java.util.Objects;public class Book {    private String name;    private int id;    private double price;    private String author;    private String desc;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }    public String getAuthor() {        return author;    }    public void setAuthor(String author) {        this.author = author;    }    public String getDesc() {        return desc;    }    public void setDesc(String desc) {        this.desc = desc;    }    @Override    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        Book book = (Book) o;        return id == book.id &&                Double.compare(book.price, price) == 0 &&                Objects.equals(name, book.name) &&                Objects.equals(author, book.author) &&                Objects.equals(desc, book.desc);    }    @Override    public int hashCode() {        return Objects.hash(name, id, price, author, desc);    }    @Override    public String toString() {        return "Book{" +                "name='" + name + ''' +                ", id=" + id +                ", price=" + price +                ", author='" + author + ''' +                ", desc='" + desc + ''' +                '}';    }}


推荐阅读