lombok 高效快速使用 --從入門到熟練使用 以及Lombok找不到符號問題

什麼是lombok:

如何使用:

  1. 需要下載 jra 包    下載的maven 地址  pom包

    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.8</version>
        <scope>provided</scope>
    </dependency>

  2. idea 需要下載插件   從市場中直接搜索🔍進行下載

 

一個簡單的user類來展示一下代碼之前代碼我們也是這樣寫的,大家認爲怎樣

package com.xuxiaoguan.payment.model;
import lombok.Data;

import java.io.Serializable;


@Data
public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;
    private String userName;
    private String password;
    private String email;
    private String nickname;
    private String regTime;

    public User() {
        super();
    }
    public User(String email, String nickname, String password, String userName, String regTime) {
        super();
        this.email = email;
        this.nickname = nickname;
        this.password = password;
        this.userName = userName;
        this.regTime = regTime;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

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

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getRegTime() {
        return regTime;
    }

    public void setRegTime(String regTime) {
        this.regTime = regTime;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                ", nickname='" + nickname + '\'' +
                ", regTime='" + regTime + '\'' +
                '}';
    }
}

表面看起來沒有問題的 正常創建一個 POJO 類不就這樣的嗎

下面是使用了lombok後的代碼  原來的代碼的行數是:88行,使用後的行數有22 行

 

package com.xuxiaoguan.payment.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;


@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    private Long id;
    private String userName;
    private String password;
    private String email;
    private String nickname;
    private String regTime;
}

 

區別一下就出來了,多加入了4個註解 ,那麼這些註解有什麼用,lombok還有什麼常用的註解,在開發中需要要用到的呢。

下面我一一例舉出來

 

@Data   = @get +@set+ @tostring
@ToString   和類的tostring 方法功能是一樣的
@NoArgsConstructor: 自動生成無參數構造函數。
@AllArgsConstructor: 自動生成全參數構造函數。
@Data: 自動爲所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,爲非final字段添加@Setter,@RequiredArgsConstructor
 

在一次的運行單元測試的代碼,突然報錯不是編譯問題 

Error:(135, 75) java: 找不到符號

這  不是類裏面的一個字段嗎  怎麼就找不呢

 

再具體看一下,這是一個DTO 類,有個@Data   正常來說是沒有問題的,唯一可能出錯的地方就是這裏

通過自己一頓查找 和實際操作最終解決 效果極好

  1.  lombok 插件卸載從新安裝
  2.  刪除 target 文件
  3. 加入設置  
  4.  查設置的編譯設置  我們使用的javadoc
  5. 刪除 本地 倉庫 lombok 的jar包
  6. 清除idea緩存    
  7.  查看idea設置的  編碼是否統一
  8.   基本上就這麼多瞭如果還是失敗 歡迎討論 評論 私信 微信都是可以的

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章