Lombok用法

一、Lombok简介

Lombok是一个Java库,它通过提供一系列注解来消除Java中的样板代码(如getter、setter、构造函数、equals、hashCode、toString等方法),从而使代码更加简洁、清晰,并提升开发效率。Lombok在编译时自动生成这些常用方法,避免了手动编写的繁琐和错误。

二、Lombok的使用方法

添加Lombok依赖

在使用Lombok之前,需要将其添加到项目的依赖中。对于Maven项目,可以在pom.xml文件中添加Lombok的依赖;对于Gradle项目,则可以在build.gradle文件中添加相应的依赖。

安装Lombok插件

在大多数Java IDE(如IntelliJ IDEA、Eclipse等)中,需要安装Lombok插件才能正确解析和使用Lombok注解。安装插件后,IDE将能够识别Lombok注解并生成相应的代码。

使用Lombok注解

Lombok提供了一系列注解,用于自动生成Java类中的常用方法。以下是一些常用的Lombok注解及其用法:

@Getter:生成字段的getter方法。
@Setter:生成字段的setter方法。
@NoArgsConstructor:生成无参构造函数。
@AllArgsConstructor:生成包含所有参数的构造函数。
@RequiredArgsConstructor:生成包含标记为final的字段或带有@NonNull注解的字段的构造函数。
@ToString:生成toString方法。
@EqualsAndHashCode:生成equals和hashCode方法。
@Data:这是一个组合注解,它包含了@Getter、@Setter、@ToString、@EqualsAndHashCode和@RequiredArgsConstructor的功能。

三、Lombok语法

个Maven依赖项配置,用于在Maven项目中添加Lombok库。

<dependency>  
    <groupId>org.projectlombok</groupId> <!-- Lombok的组织ID -->  
    <artifactId>lombok</artifactId>      <!-- Lombok的项目ID -->  
    <version>1.18.34</version>            <!-- Lombok的版本号 -->  
    <scope>provided</scope>               <!-- Lombok的作用域 -->  
</dependency>

导入后,通过@Data、@AllArgsConstructor和@NoArgsConstructor这三个注解,Lombok自动为Product类生成了getter和setter方法、一个包含所有字段的有参构造函数以及一个无参构造函数。

package com.example.demo.pojo;  
  
import lombok.AllArgsConstructor; // 导入Lombok的有参构造函数注解  
import lombok.Data;               // 导入Lombok的数据注解(包含getter、setter、toString、equals和hashCode方法)  
import lombok.NoArgsConstructor;  // 导入Lombok的无参构造函数注解  
  
// 使用@Data注解,Lombok将自动为类中的字段生成getter和setter方法,以及toString、equals和hashCode方法  
// 使用@AllArgsConstructor注解,Lombok将自动生成一个包含所有字段作为参数的有参构造函数  
// 使用@NoArgsConstructor注解,Lombok将自动生成一个无参构造函数  
@Data  
@AllArgsConstructor  
@NoArgsConstructor  
public class Product {  
  
    // 类的字段  
    private int id;        // 产品ID  
    private String name;   // 产品名称  
    private int price;     // 产品价格  
    private String type;   // 产品类型  
  
    // 由于使用了Lombok注解,这里不需要手动编写getter、setter、构造函数等方法  
    // Lombok将在编译时自动生成这些方法  
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容