Lombok的使用

简介: Lombok的使用

Lombok的使用

1,了解Lombok

看到网上的大佬都在使用Lombok插件我也就跟风学习一下。


首先,当然看的是官网。官网是这样解释的:


Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.


这里是说Lombok项目是一个会自动插入到你的编译器和构建工具中的Java库,从而是你的Java更加生动有趣。不需要再写任何的getter和equals方法,你的带有注解的有功能全面的生成器,能够自动化你的日志记录等


有关Lombok的学习点击


2,安装Lombok

如果用IDEA编辑器的最新版(2020.3)的话,会发现该编译器已经内置了Lombok插件,直接俄使用就可以。使用maven开发的话直接在pom.xml文件中添加依赖即可。


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>


3,Lombok常用注解


@Getter and @Setter 自动为类生成属性相对应的getXx()方法以及setXx()方法



public class User {
    @Setter@Getter
    private String name ;
    private int id;
}

20210325001615963.png


@Data注解:这个注解包含范围最广,使用该注解会自动生成一个无参构造函数,属性的get和set方法,toString方法,hashCode方法,equals等,如下:


import lombok.*;
@Data
public class User {
    private String name ;
    private int id;
}

20210325001637481.png


@NoArgsConstructor注解: 生成该类的无参构造方法


@AllArgsConstructor注解 :生成对应的有参构造方法,这里需要注意的是,当同时使用了@data和@AllArgsConstructor注解时,此时是没有无参构造函数的,需要自行添加 @NoArgsConstructor注解。如下:


@Data
@AllArgsConstructor
public class User {
    private String name ;
    private int id;
}

20210325001655205.png


@ToString注解 :生成toString方法

@EqualsAndHashCode注解:使用此注解会自动重写对应的equals方法和hashCode方法

@NonNull注解: 使用该注解后便会自动对方法中该参数值进行判空。 为了方便理解此处直接上代码


import lombok.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    @NonNull private String name ;
    private int id;
}


相当于:


//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import lombok.NonNull;
public class User {
    @NonNull
    private String name;
    private int id;
    public User(@NonNull String name) {
        if (name == null) {
            throw new NullPointerException("name is marked non-null but is null");
        } else {
            this.name = name;
        }
    }
    @NonNull
    public String getName() {
        return this.name;
    }
    public int getId() {
        return this.id;
    }
    public void setName(@NonNull String name) {
        if (name == null) {
            throw new NullPointerException("name is marked non-null but is null");
        } else {
            this.name = name;
        }
    }
    public void setId(int id) {
        this.id = id;
    }
    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof User)) {
            return false;
        } else {
            User other = (User)o;
            if (!other.canEqual(this)) {
                return false;
            } else if (this.getId() != other.getId()) {
                return false;
            } else {
                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name != null) {
                        return false;
                    }
                } else if (!this$name.equals(other$name)) {
                    return false;
                }
                return true;
            }
        }
    }
    protected boolean canEqual(Object other) {
        return other instanceof User;
    }
    public int hashCode() {
        int PRIME = true;
        int result = 1;
        int result = result * 59 + this.getId();
        Object $name = this.getName();
        result = result * 59 + ($name == null ? 43 : $name.hashCode());
        return result;
    }
    public String toString() {
        return "User(name=" + this.getName() + ", id=" + this.getId() + ")";
    }
}


4,优缺点


优点:

  1. 减少了大量的模板代码。
  2. 提高了代码的开发效率。


缺点:

  1. 当有n个属性时不能实现1~n-1个参数的重载
  2. 一定程度上降低了代码的可读性
相关文章
|
29天前
|
Java
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用
|
1月前
|
IDE Java 编译器
lombok编译遇到“找不到符号的问题”
【9月更文挑战第18天】当使用 Lombok 遇到 “找不到符号” 的问题时,可能是由于 Lombok 未正确安装、编译器不支持、IDE 配置不当或项目构建工具配置错误。解决方法包括确认 Lombok 安装、编译器支持,配置 IDE 和检查构建工具配置。通过这些步骤通常可解决问题,若问题仍存在,建议检查项目配置和依赖,或查看日志获取更多信息。
120 2
|
2月前
|
IDE Java 开发工具
Java 开发神器 Lombok:告别冗余,拥抱优雅!
Java 开发神器 Lombok:告别冗余,拥抱优雅!
56 0
|
4月前
|
安全 IDE Java
使用MapStruct和Lombok简化代码
使用MapStruct和Lombok简化代码
130 2
|
4月前
|
IDE Java 程序员
Lombok使用方法和总结
Lombok使用方法和总结
|
3月前
|
Java
@SneakyThrows 是 Lombok 库中的一个注解
`@SneakyThrows` 是 Lombok 库中的一个注解,它可以让你在方法签名中省略异常声明,而不需要显式地使用 try-catch 块来处理这些异常。当你使用 `@SneakyThrows` 注解时,Lombok 会自动生成相应的 try-catch 代码,将异常封装成运行时异常(通常是 `RuntimeException` 或其子类)。 这个注解在某些情况下可以简化代码,但请注意,它可能会隐藏潜在的问题,因为异常被转换成了运行时异常,这可能导致调用者无法正确处理这些异常。 下面是一个使用 `@SneakyThrows` 的示例: ```java import lombok.S
218 0
|
4月前
|
Java Maven Python
技术笔记:Lombok介绍、使用方法和总结
技术笔记:Lombok介绍、使用方法和总结
64 0
|
5月前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
49 4
|
5月前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
91 2
|
5月前
|
IDE Java 开发工具
Lombok 详解:简化 Java 开发的神奇工具
Lombok 是一款 Java 工具,通过注解自动处理如 getter/setter、toString、equals 和 hashCode 等常见代码,减少样板代码。安装 Lombok 需要在 IDE(如 IntelliJ IDEA)中添加插件,并在 Maven 或 Gradle 项目中配置依赖。常用注解包括 @Getter/@Setter 生成访问器,@ToString 生成对象描述,@EqualsAndHashCode 生成比较方法,@NoArgsConstructor/@AllArgsConstructor 生成构造器,@Data 综合应用这些注解。
372 9