lombok 高效快速使用 --从入门到熟练使用 以及Lombok找不到符号问题

1,636 阅读2分钟

什么是lombok:

如何使用:

  1. 需要下载 jra 包    下载的maven 地址  pom包
    <dependency>\
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> 
        <groupId>org.projectlombok</groupId>\
        <artifactId>lombok</artifactId>\
        <version>1.18.8</version>\
        <scope>provided</scope>\
    </dependency>
  1. idea 需要下载插件   从市场中直接搜索🔍进行下载

图片.png

案例

一个简单的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: 找不到符号

这  不是类里面的一个字段吗  怎么就找不呢

图片.png

再具体看一下,这是一个DTO 类,有个@Data   正常来说是没有问题的,唯一可能出错的地方就是这里

解决方案

通过自己一顿查找 和实际操作最终解决 效果极好 1.lombok 插件卸载从新安装 2.删除 target 文件 3.加入设置   4.图片.png 5.查设置的编译设置  我们使用的javadoc 6.删除 本地 仓库 lombok 的jar包 7.清除idea缓存     8.图片.png 9.查看idea设置的  编码是否统一 10. 基本上就这么多了如果还是失败 欢迎讨论 评论 私信 微信都是可以的