什么是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设置的 编码是否统一
- 基本上就这么多了如果还是失败 欢迎讨论 评论 私信 微信都是可以的