Lombok介紹


Lombok介紹

為什么要使用

減少冗余代碼, 提升逼格.

安裝IDEA插件

File -> Settings -> Plugins 搜索Lombok進行安裝. 如遇到網絡問題導致不能在線安裝的, 通過http://plugins.jetbrains.com/plugin/6317-lombok-plugin 下載離線安裝包, 點下圖”Install plugin from disk…”進行安裝

 

 

加入Lombok依賴

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.16.18</version>
   <scope>provided</scope>
</dependency>

Lombok在編譯完后, 就沒他事了, 所以Scope可以設置成provided, 這樣打出來的包將不會包含lombok.jar

使用Lombok

@Getter, @Setter

可以標記類, 給所有非靜態成員生成get/set方法. 下面兩種寫法效果等同:

正常寫法

Lombok寫法

class User {

    private String userId;

    private String username;

    public String getUserId() {

        return userId;

    }

    public void setUserId(String userId) {

        this.userId = userId;

    }

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;

    }

}

class User {

    @lombok.Getter

    @lombok.Setter

    private String userId;

 

    @lombok.Getter

    @lombok.Setter

    private String username;

}

@ToString

生成toString方法, 默認將所有字段輸出, 可以使用用exclude/of指定排除字段或包含字段

@EqualsAndHashCode

自動重寫hashCode和equals方法. 同@ToString, 可以指定字段

@Slf4j

生成一個slf4j的log變量

正常寫法

class User {

    private static final Logger log = LoggerFactory.getLogger(User.class);

}

Lombok寫法

@Slf4j

class User {

}

完整比較

Lombok寫法

@lombok.NoArgsConstructor
@lombok.AllArgsConstructor
@lombok.EqualsAndHashCode(of = "name")
@lombok.ToString(exclude = "password")
@lombok.extern.slf4j.Slf4j
public class LombokDemo {

    @lombok.Getter
    @lombok.Setter
    private String name;

    @lombok.Getter
    @lombok.Setter
    private String password;

}

正常寫法

public class LombokDemo {

    private static final Logger log = LoggerFactory.getLogger(LombokDemo.class);

    private String name;

    private String password;

    public LombokDemo() {}

    public LombokDemo(String name, String password) {
        this.name = name;
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        LombokDemo that = (LombokDemo) o;

        return name != null ? name.equals(that.name) : that.name == null;
    }

    @Override
    public int hashCode() {
        return name != null ? name.hashCode() : 0;
    }

    @Override
    public String toString() {
        return "LombokDemo{" +
                "name='" + name + '\'' +
                '}';
    }
}

 

總結

Lombok用起來比較簡單的, 網上有很多文章, 上面也將常用的進行舉例介紹. 還有一個學習方法就是直接在IDE里面敲下代碼看看效果, 或者看下它的java doc, 也可讓我們快速掌握lombok.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM