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.   基本上就这么多了如果还是失败 欢迎讨论 评论 私信 微信都是可以的

 

 

 

 

 

 

 

 

 

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