Lombok常用注解详解

一、Lombok常用注解及含义

Lombok是一款Java库,可以通过注解的方式来减少一些模板代码,提高开发效率和代码的可读性。Lombok常用注解如下:

  • @Getter/@Setter: 自动生成JavaBean的getter/setter方法。
  • @ToString: 自动生成ToString方法。
  • @EqualsAndHashCode: 自动生成equals和hashCode方法。
  • @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor: 自动生成无参/指定参数/所有参数的构造函数。
  • @Data: 包含@Getter,@Setter,@ToString,@EqualsAndHashCode和@RequiredArgsConstructor,常用于值对象。
  • @Builder: 链式调用生成器模式,简化对象创建过程。
    @Data
    public class User {
        private Long id;
        private String name;
        private String email;
    }

上面的代码使用@Data注解,等同于同时使用了@Getter、@Setter、@ToString、@EqualsAndHashCode和@RequiredArgsConstructor注解。

二、Lombok异常注解

Lombok还提供了一些异常处理相关的注解,如下:

  • @SneakyThrows: 在方法内部自动捕获并忽略异常,等效于try-catch。使用时,需要保证被标注方法的签名抛出声明的异常。
  • @Getter(lazy=true): 延迟加载,只有在第一次使用时才进行初始化。如果在初始化时抛出异常,则后续调用将抛出NullPointerException。
  • @NonNull: 用在参数上,可以生成参数非空判断,如果参数为空,则抛出NullPointerException。
    @SneakyThrows(ReflectiveOperationException.class)
    public void test() {
        //some reflection code
    }
    
    public class User {
        @Getter(lazy=true)
        private final String fullName = computeFullName();
        private String computeFullName() {
            //some logic to compute fullName
        }
    }
    
    public void doSomething(@NonNull String arg) {
        //some logic
    }

三、Lombok注解的默认值

有些Lombok注解可以指定一些默认值,如下:

  • @Builder: 可以设置builder名称。
  • @Value: 默认final、@ToString、@EqualsAndHashCode、@AllArgsConstructor、@FieldDefaults。
  • @NoArgsConstructor/@AllArgsConstructor: 可以指定访问级别。
    @Builder(builderMethodName="myBuilder")
    public class User {
        private Long id;
        private String name;
        private String email;
    }
    
    @Value(staticConstructor="of")
    public class Address {
        String city;
        String street;
        int number;
    }
    
    @NoArgsConstructor(access=AccessLevel.PROTECTED) //设置访问级别为protected
    public class Person {
        private Long id;
        private String name;
    }

四、Lombok注解启用

在使用Lombok时,需要在编译器中安装Lombok插件,并在项目中引入Lombok库。同时,需要在项目中添加如下依赖项:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${org.projectlombok-version}</version>
        <scope>provided</scope>
    </dependency>

五、Lombok builder注解使用

使用Lombok builder注解可以轻松实现Builder模式,可以方便地创建对象,在对象的属性比较多时使用较为方便。

    User user = User.builder()
        .id(1L)
        .name("Lily")
        .email("lily@example.com")
        .build();

六、Lombok怎么用

在开发过程中,如果使用了Lombok注解,可以通过以下步骤来进行验证:

  • 安装Lombok插件
  • 在项目中引入Lombok库
  • 在代码中使用Lombok注解
  • 编译并运行项目

七、Lombok的data注解

使用Lombok的@Data注解可以让JavaBean类的定义更简单,但需要注意的是,当属性较多时,可能会出现无限递归的问题。此时,可以通过对不需要的字段使用@ToString.Exclude和@EqualsAndHashCode.Exclude来排除该字段。

    @Data
    public class User {
        private Long id;
        private String name;
        @ToString.Exclude
        private String email;
    }

八、Lombok自定义注解

使用Lombok提供的注解可以快速地生成简洁的Java代码,在实际开发过程中,如果需要使用自定义的注解,可以通过定义注解,并在代码中使用该注解来实现。

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface LogExecutionTime {
    }

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/287333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-23 13:07
下一篇 2024-12-23 13:07

相关推荐

  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • Hibernate注解联合主键 如何使用

    解答:Hibernate的注解方式可以用来定义联合主键,使用@Embeddable和@EmbeddedId注解。 一、@Embeddable和@EmbeddedId注解 在Hibe…

    编程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在数据分析、机器学习、图像处理等很多领域都有广泛的应用。Python序列分为三种:列表(list)、元组(tuple)和字符串(string)。…

    编程 2025-04-28
  • 上传多媒体文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一个非常常用的方法,它允许我们将本地的多媒体文件上传到微信服务器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    编程 2025-04-27
  • Python数据看板开发:常用的包及其使用

    随着数据分析和可视化的需求日渐增长,数据看板作为一种高效展示复杂数据信息的工具应运而生。Python语言作为一种面向数据分析和科学计算的编程语言,在数据看板开发中有着广泛的应用。本…

    编程 2025-04-27
  • Python常用库

    Python是一种高级编程语言,拥有丰富的第三方包和工具,常用库涵盖了各种应用场景。在此,我们将从以下几个方面对Python常用库进行阐述: 一、数据分析 数据分析是Python的…

    编程 2025-04-27
  • Python在运维中的常用库

    Python被广泛应用于各种Web应用程序、数据分析、自动运维、AI应用等领域。在运维领域,Python成为了最常用的编程语言之一。在本文中,我们将会讨论Python运维中常用的库…

    编程 2025-04-27
  • Python常用断言函数用法介绍

    本文将详细介绍Python中常用的断言函数,让大家了解这些函数的作用及使用方法,以便于进行代码测试和调试。 一、assertEqual函数 1、assertEqual函数是Pyth…

    编程 2025-04-27
  • Python常用函数用法介绍

    Python是一种高级编程语言,拥有强大且易于使用的函数库,可以轻松实现各种任务。本文将详细介绍Python中常用的函数,包括字符串、数字、列表、字典、日期等方面的常见函数。 一、…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25

发表回复

登录后才能评论