Java中的@Accessors使用详解

 更新时间:2024年01月17日 09:47:24   作者:java-zh  
这篇文章主要介绍了Java中的@Accessors使用详解,@RequiredArgsConstructor是Lombok的一个注解,简化了我们对setter和getter方法操作,它可以作用在类上,也可以作用在类的单个属性上,需要的朋友可以参考下

一、什么是@Accessors注解?

@RequiredArgsConstructor是Lombok的一个注解,简化了我们对setter和getter方法操作。

它可以作用在类上,也可以作用在类的单个属性上。

修饰类的时候对这个类的所有属性都是有效的,修饰单个属性的时候,只对当前的属性有效。

二、@Accessors导包

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.22</version>
</dependency>

三、@Accessors源码讲解和使用案例

从源码可以知道,该注解有三个属性,分别是fluent,chain,prefix。

其中,fluent和chain是boolean类型,默认值都是false,prefix是数组类型,默认值为空。

fluent:默认值为false,当该值为true时,省略对象赋值和取值的set和get前缀

@Data
@Accessors(fluent = true)
public class Animal {
    String name;
    Integer age;
    public static void main(String[] args) {
        Animal animal = new Animal();
        //赋值的时候省略了前缀set
        animal.name("狗");
        //取值的时候省略了前缀get
        String animalName = animal.name();
        System.out.println(animalName);
    }
}

chain:默认值为false,当该值为true时,对应字段的setter方法调用后,会返回当前对象

@Data
@Accessors(chain = true)
public class Animal {
    String name;
    Integer age;
    public static void main(String[] args) {
        //new出的对象直接赋值,返回当前对象
        Animal animal = new Animal().setName("狗").setAge(2);
        System.out.println("直接返回当前对象:"+animal.toString());
    }
}

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

@Data
@Accessors(prefix = {"aa", "bb"})
public class Animal {
    String aaName;
    Integer bbAge;
    public static void main(String[] args) {
        Animal animal = new Animal();
        //忽略了前缀aa进行赋值
        animal.setName("狗");
        //忽略了前缀bb进行赋值
        animal.setAge(2);
        System.out.println("忽略了前缀aa和bb:" + animal.toString());
    }
}

到此这篇关于Java中的@Accessors使用详解的文章就介绍到这了,更多相关@Accessors使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解在Java程序中运用Redis缓存对象的方法

    详解在Java程序中运用Redis缓存对象的方法

    这篇文章主要介绍了在Java程序中运用Redis缓存对象的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • java模拟实现微信红包算法

    java模拟实现微信红包算法

    这篇文章主要为大家详细介绍了java实现模拟微信红包算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Java数据结构之双端链表原理与实现方法

    Java数据结构之双端链表原理与实现方法

    这篇文章主要介绍了Java数据结构之双端链表原理与实现方法,简单描述了双端链表的概念、原理并结合实例形式分析了java实现双端链表的相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • java对象强转成object的方法实现

    java对象强转成object的方法实现

    在 Java 编程中,有时候我们需要将一个具体的对象强制转换成 Object 类型,本文主要介绍了java对象强转成object的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • SpringBoot项目中日志管理与调优指南

    SpringBoot项目中日志管理与调优指南

    在 Spring Boot 开发过程中,日志管理是开发者必须掌握的重要技能之一,合理的日志配置不仅能帮助开发者追踪应用程序的执行流程、定位问题,还能提升应用程序的可维护性,本文将详细探讨 Spring Boot 项目中日志管理的常见问题、解决方案以及最佳实践
    2024-10-10
  • SpringMVC中@ModelAttribute注解的使用教程

    SpringMVC中@ModelAttribute注解的使用教程

    在SpringMVC中,我们可以通过使用@ModelAttribute注解标记方法,实现类似于Struts2中Preparable拦截器的效果,这篇文章主要给大家介绍了关于SpringMVC中@ModelAttribute注解使用的相关资料,需要的朋友可以参考下
    2021-08-08
  • Java面试官最喜欢问的关键字之volatile详解

    Java面试官最喜欢问的关键字之volatile详解

    这篇文章主要给大家介绍了关于Java面试官最喜欢问的关键字之volatile的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • SpringBoot启动后自动执行方法的各种方式对比

    SpringBoot启动后自动执行方法的各种方式对比

    这篇文章主要为大家详细介绍了SpringBoot启动后自动执行方法的各种方式和性能对比,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2025-04-04
  • SpringBoot与MongoDB版本对照一览

    SpringBoot与MongoDB版本对照一览

    这篇文章主要介绍了SpringBoot与MongoDB版本对照一览,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 如何在yml配置文件中使用中文注解

    如何在yml配置文件中使用中文注解

    这篇文章主要介绍了如何在yml配置文件中使用中文注解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10

最新评论