Lombok中@Accessors注解的使用及说明

 更新时间:2025年10月15日 10:03:38   作者:慷  慨  
Lombok是一个Java库,旨在通过注解减少代码量,提高效率,@Accessors注解是其中一种工具,用于简化Java类的访问器方法,这个注解允许配置访问器的生成方式,包括是否使用fluent风格、是否忽略字段前缀以及是否支持链式调用,从而使代码更简洁、易读

Lombok是一款优秀的Java库,旨在通过注解方式减少代码量,提高开发效率。其中,@Accessors注解是Lombok提供的一个强大工具,能够进一步简化Java类中的访问器方法,使代码更加简洁易读。

1. 什么是@Accessors注解?

在介绍@Accessors注解之前,我们先来了解一下访问器方法。在Java中,通常我们会为类的成员变量定义一对getter和setter方法,以便对这些变量进行读写操作。然而,这样的方法会导致代码冗长,而且降低了代码的可读性。

@Accessors注解的出现就是为了解决这个问题。通过使用@Accessors注解,我们可以轻松地配置生成的访问器方法,使其更符合我们的编码风格。

2. 基本用法

@Accessors注解的基本用法非常简单。我们只需要在类上使用该注解,并通过其中的fluent属性来配置生成的访问器方法。

2.1 fluent 属性

不写默认为false,当该值为 true 时,对应字段的 getter 方法前面就没有 get,setter 方法就不会有 set

@Data
@Accessors(fluent = true)
public class Person {
    private String firstName;
    private String lastName;

    public static void main(String[] args) {
        Person person = new Person();
        person.firstName("John").lastName("Doe");
        System.out.println("Full Name: " + person.firstName());
    }
}

2.2  prefix属性

该属性是一个字符串数组,默认值为空,该数组有值的时候,表示忽略字段对应的前缀,生成对应的getter和setter方法

@Data
@Accessors(prefix = {"xx","yy"})
public class Person {
    private String xxFirstName;
    private String yyLastName;

    public static void main(String[] args) {
        Person person = new Person();
        person.setFirstName("John");
        System.out.println("Full Name: " + person.getFirstName());
    }
}

2.3  chain属性

通过chain属性,我们可以控制是否生成返回当前对象的访问器方法,以支持链式调用。

@Data
@Accessors(chain = true)
public class Person {
    private String firstName;
    private String lastName;

    public static void main(String[] args) {
        Person person = new Person().setFirstName("John").setLastName("Doe");
        System.out.println("Full Name: " + person.getFirstName());
    }
}

3. 总结

了解了Lombok中的@Accessors注解,了解了它如何简化Java类中访问器方法的生成。

通过合理的配置,我们能够使代码更加简洁、可读,并通过链式调用提高代码的可维护性。

@Accessors注解是Lombok中一个强大而灵活的工具。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java使用poi实现excel的导入操作指南

    Java使用poi实现excel的导入操作指南

    使用Apache Poi是一种流行且广泛使用的方式,可以帮助开发人员直接从Java代码中读取、写入和处理Excel文件,因此在这篇文章我们将着重介绍如何实现excel的导入,感兴趣的朋友可以跟着小编一起来学习
    2023-06-06
  • mybatis之foreach用法详解

    mybatis之foreach用法详解

    这篇文章主要介绍了mybatis之foreach用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • kafka生产实践(详解)

    kafka生产实践(详解)

    下面小编就为大家带来一篇kafka生产实践(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java开发之普通web项目转为Maven项目的方法

    Java开发之普通web项目转为Maven项目的方法

    这篇文章主要给大家介绍了关于Java开发之普通web项目转为Maven项目的相关资料,文中通过图文将转换的方法步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • 如何启用 Java AOT 编译打包 Solon 项目(Solon AOT)

    如何启用 Java AOT 编译打包 Solon 项目(Solon AOT)

    AOT(Ahead-Of-Time)编译是与 JIT(Just-In-Time)相对的一种编译方式,这篇文章主要介绍了如何启用 Java AOT 编译打包 Solon 项目(Solon AOT),需要的朋友可以参考下
    2025-05-05
  • Java并发编程之CountDownLatch源码解析

    Java并发编程之CountDownLatch源码解析

    这篇文章主要介绍了Java并发编程之CountDownLatch源码解析,文中有非常详细的代码示例,对正在学习java并发编程的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04
  • MyBatis批量添加、修改和删除

    MyBatis批量添加、修改和删除

    本文给大家分享mybatis批量添加,修改,删除的实例代码,本文代码简单易懂,对mybatis 批量添加、修改及删除相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • mybatis判断list不为空/大小的问题

    mybatis判断list不为空/大小的问题

    这篇文章主要介绍了mybatis判断list不为空/大小的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 一段代码搞懂关于Java中List、Set集合及Map的使用

    一段代码搞懂关于Java中List、Set集合及Map的使用

    这篇文章主要介绍了关于Java中List、Set集合及Map的使用及list,set和map三者的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • Java判断范围型的数据是否存在重叠的方法

    Java判断范围型的数据是否存在重叠的方法

    遇到了个问题,同一天可以输入多个时间段,但是每个时间段的时间不能出现重叠,这不就是判断数据返回是否有重叠的变种吗,所以本文给大家介绍了Java判断范围型的数据是否存在重叠的方法,需要的朋友可以参考下
    2024-07-07

最新评论