关于注解@Accessors的那些事

本文探讨了在项目开发过程中,使用Lombok的@Accessors注解可能导致数据丢失的问题,特别是当配置不当时,即使数据已从参数接收并封装,结果却变成空对象。作者还介绍了@Accessors注解的配置选项如fluent、chain、prefix和makeFinal等。
摘要由CSDN通过智能技术生成

背景:在项目开发中发现了一个很有意思的东西,开发这种啊,每个人的开发习惯多多少少是有些差异的,最近就有一个问题,客户的数据,明明都从入参中接进来啦,也做了数据的封装,但最后发现数据丢失了,数据对象变成了空对象,多次排查和复现,发现,使用的是这个@Accessors这个注解导致的。

大家会发现,这个注解是在lombok上的,这个注解的官方解释是:面向getter 和setter的更流畅的api。

使用此注解@Accessors 要配置lombok生成的和查找getter和setter的方式。

  • fluent-- 一个布尔值。如果为true,则访问器将以字段命名,并且不包含get或set前缀。如果为true且省略chain,则chain默认为true。注:此设置对@With没有影响;他们总是有一个“with”前缀。默认值:flase
    返回:
    是否创建流畅的方法(命名为fieldName(),而不是setFieldName)。
  • ~chain-- 一个布尔值。如果为true,setter返回this而不是void。默认值:false,除非fluent=true,否则默认值:true
    返回:
    setter是否应该返回自己(链式)或void(无链式)。
  • prefix-- 字符串列表。如果存在,只有具有任何指定前缀的字段才会被给予getter/setter处理。请注意,前缀仅在下一个字符不是小写字符或前缀的最后一个字母不是字母(例如下划线)时才算数。如果多个字段在去掉前缀后都变成了相同的名称,将会产生一个错误。
    返回:
    如果您习惯于为字段添加前缀(例如,您将其命名为fFieldname,请在此处指定此类前缀)。
  • makeFinal() default false; 
    如果为true,生成的访问器将被标记为final。默认值:假
    返回:
    是否应该将访问器标记为final。

常用的场景:

未完待续。。。。。。。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值