首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我尝试使用lombok获取boolean @瞬态变量的值时会出现错误?

Lombok是一个Java库,它通过注解来简化Java代码的编写,减少冗余的getter和setter方法的编写。在使用Lombok时,如果尝试获取一个被@Transient注解修饰的boolean类型的变量的值,可能会出现错误。

这是因为@Transient注解通常用于标识一个字段不需要持久化到数据库中,即该字段是瞬态的,不会被存储。而Lombok生成的getter方法是根据字段名来命名的,因此在尝试获取被@Transient注解修饰的boolean类型变量的值时,会出现错误。

解决这个问题的方法是使用Lombok提供的@Accessors注解来指定生成getter方法的访问级别。通过设置@Accessors注解的fluent属性为true,可以生成以is开头的getter方法,适用于boolean类型的变量。

示例代码如下:

代码语言:txt
复制
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(fluent = true)
public class MyClass {
    @Transient
    private boolean myBoolean;
}

在上述示例中,使用@Accessors注解的fluent属性设置为true,生成的getter方法将以is开头,即isMyBoolean()。这样就可以正确获取被@Transient注解修饰的boolean类型变量的值了。

推荐的腾讯云相关产品:无

参考链接:

  • Lombok官方文档:https://projectlombok.org/
  • @Accessors注解文档:https://projectlombok.org/features/experimental/Accessors
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

公司来了个新同事不会用 Lombok,还说代码有问题!

好吧,认了,默默亲自为他把 Lombok 装上了! 如果你没用过,也不觉得奇怪,Lombok 毕竟是团队工具,但如果你也没听过,那就感觉获取新知识自我提升学习能力有点弱了。...Lombok 弊端 Lombok 好处就不说了,就是帮我们大量简化代码,这里重点说下为什么有人不推荐使用 Lombok。...43 : $address.hashCode()); } 最后判断如果不是同一个对象时,会判断每个变量,但是此时父类不参与比较,这显然是不符合逻辑,另外 hashCode 方法父类也没有参与运算...代码调试也有问题,比如我跟进 getAddress 方法,虽然进不去该方法,但可以直接跳到对应变量,显示对应。 ?...总结 以上一些问题都是使用 Lombok 不可避免,这还只是已知问题,未知呢? Lombok 虽好,你也要遵循团队规范,能用情况下再用,也不能乱用,不了解其构造,乱用就容易出现问题

1.2K20

lombok问题汇总

Eclipse安装lombok插件 方式一 使用lombok框架开发可以减少大量重复性代码,大大提高开发效率,但是Eclipse本身并不支持lombok,会编译报错。...除了项目要导入lombok依赖,还需要为Eclipse安装该lombok插件。 安装方法很简单,找到你导入lombokjar包,双击运行该jar包,会出现一个安装界面。...在Eclipse里@Slf4j和@Data无效 在Eclipse安装好lombok之后,虽然能够正常识别@Slf4j注解生成log变量,但@Data注解依然无效:在使用到了pojo类私有变量时,依然会提示说缺少...之所以会自动给变量加上final修饰符,是因为设置了Save Action,Eclipse会自动在保存代码时候自动在私有变量、局部变量前加上final修饰符,这个是公司制定代码编程规范。...@EqualsAndHashCode 该注解默认使用当前类非静态、非瞬态属性来生成equals(Object other)和hashCode()方法,而@Data本身包括了这个@EqualsAndHashCode

71620

Lombok介绍、使用方法和总结

例如开发中经常需要写javabean,都需要花时间去添加相应getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量getter/setter方法,这些显得很冗长也没有太多技术含量...,一旦修改属性,就容易出现忘记修改对应方法失误。...= null) { in.close(); } } } } 2.5 @EqualsAndHashCode 默认情况下,会使用所有非静态(non-static)和非瞬态...总结 Lombok虽然有很多优点,但Lombok更类似于一种IDE插件,项目也需要依赖相应jar包。Lombok依赖jar包是因为编译时要用它注解,为什么说它又类似插件?...它不像spring依赖注入或者mybatisORM一样是运行时特性,而是编译时特性。这里个人最感觉不爽地方就是对插件依赖!

1.4K71

JUC学习之无锁---乐观锁(非阻塞)

true ---- volatile 获取共享变量时,为了保证该变量可见性,需要使用 volatile 修饰。...它可以用来修饰成员变量和静态成员变量,他可以避免线程从自己工作缓存中查找变量,必须到主存中获取,线程操作 volatile 变量都是直接操作主存。...CAS 是基于乐观锁思想:最乐观估计,不怕别的线程来修改共享变量,就算改了也没关系,吃亏点再 重试呗。...synchronized 是基于悲观锁思想:最悲观估计,得防着其它线程来修改共享变量上了锁你们都别想 改,改完了解开锁,你们才有机会。...Cell[1]=8000 要累Cell[0]=6001,Cell[1]=8000 ,这时会让 Core-1 缓存行失效 @sun.misc.Contended 用来解决这个问题,它原理是在使用此注解对象或字段前后各增加

66220

如何避免 Java 中“NullPointerException”

在上面的示例中,我们尝试分配给 String 变量 Integer : 字符串变量 3 空引用破坏了 Java 类型安全性 Java 在编译期间验证变量类型和赋值类型。那有什么问题呢?...,当 Java 尝试调用真实对象上任何方法但在运行时该对象引用 Null 引用时会引发该异常。...现在,让我们将其标记为@Nullable,并尝试使用它: 使用 @Nullable 注释 该框架会在该代码中发现任何错误吗?...要使用 Checker Framework,您可以在此处获取示例: git clone https://github.com/isicju/checker_framework_example 要运行...如果必须实现自己解决方案并且它必须在生产中保持稳定,即使必须摆脱 Lombok 甚至 Builder Pattern,也会使用 Checker Framework。

2.8K20

攻克技术难题:由Java属性名,getset 方法引起序列化bug

阿里Java开发手册 没,里面就提到了不要用这个 is 前缀去修饰 pojo 中 boolean 变量。...当时就懵了,想着这前端写啥代码,怎么给我搞这出…… 于是乎,我们愉快进行了沟通~ 结果发现,这个是在更新数据时出现,而这个 tdate 属性是传回来,而且就是 null 仔细看了下,发现这居然是真的...这里已经匹配不上了,所以这个我们 DTO 中获取不到 效果如下 响应过程 这里就涉及到这个序列化过程了, 这个 debug 起来也比较简单了 就不过赘述啦~ 反序列化时会执行到一个 serializeValue...使用Lombok 相关注解时,它会在编译期根据自己规则帮我们生成 get/set 方法。 扩展 一....(晕了 ) 这个方法作用是 使首字母变小 ,而且在 Spring 这些包中使用到!

30320

千万不要再随便使用 lombok @Builder 了!

一、背景 现在很多大厂员工也很喜欢使用 lombok,有了 lombok 加持之后代码更加 “简洁”。...但是使用 lombok 也会造成很多问题,尤其 @Builder 有个很大坑,已经见过好几次由于使用 @Builder 注解导致默认失效问题。...如果测试时没有在意这个问题,上线之后很容易出现故障。 大家使用时一定要注意这个问题。 二、复现问题 我们定义 SomeConfig 对象,对其中 isOpen和 value 设置默认。...三、原因揭秘 想了解为什么会这样,我们只需要查看使用 lombok 注解后 SomeConfig class 文件长啥样就明白了。...使用 @Builder 一定要注意它副作用,避免出现潜在 BUG

90930

超级全面的 Lombok 注解介绍,学一波!

默认情况下,它将使用所有非静态,非瞬态字段,但是您可以通过使用@EqualsAndHashCode.Include标记类型成员来修改使用哪些字段(甚至指定要使用各种方法输出)。...如果字段由final修饰,则将导致编译器错误,除非使用@NoArgsConstructor(force = true),否则所有final字段都将初始化为0 / false / null。...所有未初始化final字段都会获取一个参数,以及所有未声明其位置未标记为@NonNull字段。 @AllArgsConstructor为类中每个字段生成一个带有1个参数构造函数。...可标注在类或属性上,当然最实用功能还是标注到类上。 标注到类上,chain属性设置为true时,类所有属性setter方法返回将为this,用来支持setter方法链式写法。...前缀,获取属性直接使用属性名相同无参方法,设置属性使用属性名相同有参方法,并且返回为this。

4.1K32

【JAVA教程】Lombok使用与总结

例如开发中经常需要写javabean,都需要花时间去添加相应getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量getter/setter方法,这些显得很冗长也没有太多技术含量...,一旦修改属性,就容易出现忘记修改对应方法失误。...出现神奇就是在源码中没有getter和setter方法,但是在编译生成字节码文件中有getter和setter方法。这样就省去了手动重建这些代码麻烦,使代码看起来更简洁些。 2....Lombok使用 Lombok使用跟引用jar包一样,可以在官网(https://projectlombok.org/download) 下载jar包,也可以使用maven添加依赖: <dependency...= null) { in.close(); } } } } 2.5 @EqualsAndHashCode 默认情况下,会使用所有非静态(non-static)和非瞬态

25830

Lombok快速入门

为什么Lombok可以使代码更简洁、可以消除冗长代码呢?...> ---- IDEA安装Lombok插件 然后还需要在IDE中安装Lombok插件,这里使用是IDEA,所以先以IDEA为例做演示。...默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以使用exclude或of属性。...Lombok并非处处适用,我们需要选择适合地方使用Lombok,例如pojo是一个好地方,因为pojo很单纯 ---- Lombok实战 这里拿之前项目中一个 Category 类来做为演示例子...接下来演示一下@Slf4j注解使用,因为项目中使用是logback,所以使用@Slf4j注解,如果使用是log4j,则使用@Log4j注解,两者使用方式是一样。代码如下: ...

70210

MySQL 8.0.21复制功能强化

作者:Luis Soares 译:徐轶韬 MySQL 8.0.21版本具有一些有趣复制功能。在这里给您一个简短摘要,更为详细更改日志可以从官网获得。...Pedro Ribeiro完成这项工作将组复制中此变量默认设置为5,而不是0(秒)。这意味着默认情况下,系统将容忍持续10秒钟瞬态网络故障(5秒确认可疑,再加上5秒钟等待驱逐)。...之前默认是不开启(设置为0)。新默认为(3),发生网络分区时,被驱逐出局成员会自动尝试重新加入群组,而不管解决分区需要花费多长时间。...除了更改几个“组复制”变量默认设置外,我们还放宽了现有变量限制: 减小了group_replication_message_cache_size下限(WL#13979)。...Tiago vale这项工作重构了XCom一些内部结构,并使得使用C ++构建XCom更加容易。 这次更新列表有点长,请尝试在MySQL 8.0.21中尝试这些功能。

52120

lombok优缺点

前言 最近上网查资料发现很多人对lombok褒贬不一,引起了兴趣,因为我们项目中也在大量使用lombok,大家不同观点让也困惑了几天,今天结合实际项目经验,说说个人建议。...这些人觉得它有一些坑,容易给项目埋下隐患,我们到底该听谁呢? 为什么建议使用lombok?...lombok工作原理 java程序解析分为:运行时解析 和 编译时解析。 通常我们通过反射获取类、方法、注解和成员变量就是运行时解析。但是这种方式效率其实不高,要在程序运行起来才能解析。...增加新节点(代码块) 为什么建议不用lombok?...即使lombok是一个神器,但是却有很多人不建议使用,这又是为什么呢? ![](data:;base64,<?

1.9K10

JAVA 拾遗--eqauls 和 hashCode 方法

@Data 便是 Lombok 提供常用注解,本意是使用它来自动生成 getter/setter 方法。这样实体类定义再简单不过了。...意外出现 使用 Project 类表达项目间依赖关系是初衷,具体分析步骤不在此赘述,对 Project 类操作主要包括创建,打印,保存几个简单操作。...等等…hashCode…emmmmm…压根没有重写过它啊,怎么可能会报错呢….再想了想 Lombok @Data 注解,似乎发现了什么…emmmmm…抱着怀疑态度翻阅了下 Lombok 文档...回到我案例中,也就是说,Lombok 会将 Project 类中 List projects 当做是 hashCode 计算一部分(同理,equals,toString 也会存在同样问题),而如果项目中出现循环引用...它默认使用非静态,非瞬态属性 可通过参数exclude排除一些属性 可通过参数of指定仅使用哪些属性 它默认仅使用该类中定义属性且不调用父类方法 可通过callSuper=true解决上一点问题。

1.1K70

错误使用.Net Redis客户端CSRedisCore,自己挖坑自己填

:6379/0】仍然不可用,下一次恢复检查时间:09/17/2019 03:11:25,错误:(ERR max number of clients reached) 快速思考:目前编排某容器使用CSRedisCore...为什么Redis服务器没有释放空闲客户端连接,如果空闲连接被释放了,即使写了low代码也不至于如此?...,在高并发场景下强烈建议注册为单例, 否则在生产使用中可能会误用在瞬态请求中实例化,导致redis连接数几天之后消耗完。...额外方法论: 尽量不要从某度找答案,要学会问问题,并尝试从官方、stackoverflow、github社区寻求解答,你挖过坑也许别人早就挖过并踏平过。...Update 很多博友说问题在于我没有细看CSRedisCore官方readme(readme推荐使用单例),使用方式上确实没有做成单例: ③ 一般连接池都会有空闲释放回收机制 (CSRedisCore

2.1K20

CTO:不要在代码中写 setget 方法了,逮一次罚款...

,一个 JavaBean 往往会有很多成员变量,一个变量对应两个方法,如果有10几个成员变量,那么会对应20多个方法,也许还要去写构造器、equals 等方法,而且需要维护。...在看大项目的源码时候,看到他们代码中都没有 set/get 方法,取而代之是在 JavaBean 上标注注解,感到非常好奇,原来他们是用了一种叫做 Lombok 插件,便去详细了解了这个插件...Lombok使用方法 Lombok 能通过注解方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString 方法。...Lombok 使用跟引用 jar 包一样,可以在官网(https://projectlombok.org/download)下载 jar 包,也可以使用 maven 添加依赖: <dependency...打开注解生成器 Enable annotation processing 再次注意: IntelliJ IDEA 2019.2(也就是版本)默认是不支持 Lombok 插件,需要去 https:

53820

Java代码中写setget方法了,逮到罚款!

,一个 JavaBean 往往会有很多成员变量,一个变量对应两个方法,如果有10几个成员变量,那么会对应20多个方法,也许还要去写构造器、equals 等方法,而且需要维护。...在看大佬项目的源码时候,看到他们代码中都没有 set/get 方法,取而代之是在 JavaBean 上标注注解,感到非常好奇,原来他们是用了一种叫做 Lombok 插件,便去详细了解了这个插件...Lombok使用方法 Lombok 能通过注解方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString 方法。...Lombok 使用跟引用 jar 包一样,可以在官网(https://projectlombok.org/download)下载 jar 包,也可以使用 maven 添加依赖: <dependency...打开注解生成器 Enable annotation processing 再次注意: IntelliJ IDEA 2019.2(也就是版本)默认是不支持 Lombok 插件,需要去 https:

53230

Java 后台返回实体对象 ResultPage 无状态篇

首先,为什么需要这个ResultPage 实体类对象呢?...是因为 如果每次我们给前端传递参数 都是我们自定义,前端在发送请求获取时候,可能获取到了数据,但无法判断是否有效、以及获取到数据后,再想获取数量时候,需要再次发送请求。...,这个更名为mydata,避免与前端读取this.data重复 对axios或vue不理解容易出现错误!")..."; } 每次使用时候 直接 类名.属性 return new ResultPage(false, ResultInfo.addUserFail,null); 完结。...特殊说明: 解决问题光鲜,藏着磕Bug痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是实际操作,写出来笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!

94220
领券