什麼是lombok:
如何使用:
- 需要下載 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> - 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 正常來說是沒有問題的,唯一可能出錯的地方就是這裏
通過自己一頓查找 和實際操作最終解決 效果極好
- lombok 插件卸載從新安裝
- 刪除 target 文件
- 加入設置
- 查設置的編譯設置 我們使用的javadoc
- 刪除 本地 倉庫 lombok 的jar包
- 清除idea緩存
- 查看idea設置的 編碼是否統一
- 基本上就這麼多瞭如果還是失敗 歡迎討論 評論 私信 微信都是可以的