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

盘点 Lombok 的几个骚操作

本文讨论对错,只讲骚操作。 有的方法看看就好,知道可以这么用,但是否应用到实际开发中,那就仁者见仁,智者见智了。 一万个读者就会有一万个哈姆雷特,希望这篇文章能够给您带来一些思考。...@Delegate @Delegate可以让你的类使用其他类的方法,而不需要自己写代码。...比如,你有一个类叫做A,它有一个方法叫做sayHello(),你想让另一个类B也能用这个方法,那就可以在B类中加上一个A类型的字段,并在这个字段上加上@Delegate注解,这样,B类就可以直接调用sayHello...void sayHello() { System.out.println("Hello"); } } // 一个类,委托了A类的方法 public class B { @Delegate...这两个方法可以和 @Builder 生成的其他方法一起链式调用,给你的类的所有字段赋值。

11810
您找到你想要的搜索结果了吗?
是的
没有找到

推荐一款代码神器,代码量至少省一半!

今天给大家介绍一款能帮助我们简化这些代码的神器:Lombok!有了这个神器,你的 Java Bean 类的代码量至少可以省一半。 什么是Lombok?...总之,有了这个家伙,可以省掉很多代码的编写,大大减少了工作量和维护的难度。 如何使用Lombok? 1、安装插件和配置依赖 ?...如上图所示,Lombok支持所有主流的 IDE 开发工具及编译构建工具。 在 IDEA 中安装 Lombok 插件,这样在使用 Lombok 的时候就不会编译报错。 ?...@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger @Data @Builder @Singular @Delegate...config system Code inspections Refactoring actions (lombok and delombok) 也可以去 Lombok 对应的包里面看所有支持的注解。

58730

lombok1.16.20序列化bug分析

摘要 记录下使用 lombok遇到的反序列问题,一开始在 lombok1.16.18中并没有发现,然后应用中没有指定lombok全局版本,引入的其他二方包将lombok版本提升到了 1.16.20,然后报错...com.fs.jackson.Address` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate...chain = true) @Builder public class Address { private Long id; private String address; } 分析 分析lombok...这显然是lombok升级过程中的一个兼容的改造。 因为我们都没有定义无参构造函数,所以会找已有的构造函数,然后匹配getter/setter函数。...解决 1.maven中指定lombok固定版本,使用1.16.18版本,代码层面不需要做更改 2.类中添加无参构造器 建议 需要序列化的类,比如与前端交互,rpc调用,都加上无参构造器,兼容性比较好 参考

1.1K10

Spring Boot 最佳实践

这些入门依赖项已与所需的依赖项捆绑在一起。...5.使用 Lombok 作为一名 Java 开发人员,我们可能听说过 Lombok 项目。 Lombok 是一个 Java 库,可用于减少代码并允许我们使用其注释编写干净的代码。...6.将构造函数注入与 Lombok 一起使用 当我们谈论依赖注入时,有两种类型。 一种是“构造函数注入”,另一种是“setter 注入”。...返回空值,可以返回空集合。 如果我们使用对象作为要存储在基于哈希的集合中的数据,则应重写 equals() 和 hashCode() 方法。请查看这篇文章“HashMap 内部是如何工作的”。...通常,我会遵循, 类 — 帕斯卡命名 方法和变量 — 驼峰命名 常量 — 大蛇式命名 数据库相关字段 — 短横线命名 这只是一个例子,它可能与我们在公司遵循的标准不同。

17210

火车残骸和基本类型偏执问题解决方案

解决这种代码的重构方案叫隐藏委托关系(Hide Delegate),即把这种调用封装: class Book { ......3 迪米特法则 每个单元对其它单元只拥有有限知识,而且这些单元是与当前单元有紧密联系 每个单元只能与其朋友交谈,不与陌生人交谈 只与自己最直接的朋友交谈 该原则需要思考:哪些是直接朋友、陌生人。...软件行业有一个编程指导原则,叫迪米特法则,可以作为日常工作的指导,规避这种坏味道的出现。 基本类型偏执就是用各种基本类型作为模型到处传递,这种情况下通常是缺少了一个模型。...链式调用不一定都是火车残骸,比如: builder模式,每次调用返回的都是自身,牵涉到其他对象,违反迪米特法则 java stream操作,就是声明性操作。...JavaBean,用MyBatis Genarater或Lombok生成都会有Setter方法,这样DB查询或接受参数时,数据自动映射到这个对象。如果不用setter,怎么赋值?

33420

Lombok 的作者,成功讨伐 IntelliJ IDEA!

因为每次发新版本就会有一个问题,也一直影响着大家升级,那就是粉丝普遍反馈的 Lombok 等插件兼容的问题,没办法,我们也用了这个插件,轻量使用而已。...还是说兼容 Lombok,到底是什么鬼?...image.png 下面是评论: image.png 栈长来解读下他们的留言: Wojciech Musiał: “我不得不说,用户也在哭诉……我们无法使用该工具正常工作,为此,我们付出了代价。...还有很多评论的呼声是要官方原生支持 Lombok,IntelliJ 开发者被讨伐,有兴趣可以进那个链接看下,不过这个问题最终还是解决了: ? 既然如此,为什么还是提示说兼容 Lombok 呢?...感受了一下,使用了 Lombok 插件的代码暂时没有遇到问题,不过升级还是需要谨慎,毕竟我只是轻度使用用户。 希望这个版本是彻底解决了新版兼容 Lombok 插件的问题,后面我们一起拭目以待吧。

99630

升级了下 IDEA 后 Lombok 失效了...

今天到工作室比较晚,在电脑前吃着早饭,看到提示IDEA提示升级,寻思已经有好久没有升过级了。一样等着,就升级下吧。 升级完毕重启之后,突然发现好多错误,原来的应用也没法启动了。...仔细一看报错信息,是由于Lombok相关的注解似乎都没有生效。...$Proxy26   Lombok supports: sun/apple javac 1.6, ECJ 搜索一番,是由于IDEA版本导致的Lombok失效,不过这个问题后来解决了。...用户,往往写版本号,因为2.x开始,就Spring Boot就把lombok的版本一起纳入了。...Compiler中增加参数配置:-Djps.track.ap.dependencies=false 如果你还有其他疑问,关注下方公众号,回复”加群“,加入我们的Spring技术交流群,参与交流与讨论,一起学习与进步

2.2K21

Spring Boot 最佳实践

这些入门依赖项已与所需的依赖项捆绑在一起。...5.使用 Lombok 作为一名 Java 开发人员,我们可能听说过 Lombok 项目。 Lombok 是一个 Java 库,可用于减少代码并允许我们使用其注释编写干净的代码。...6.将构造函数注入与 Lombok 一起使用 当我们谈论依赖注入时,有两种类型。 一种是“构造函数注入”,另一种是“setter 注入”。...返回空值,可以返回空集合。 如果我们使用对象作为要存储在基于哈希的集合中的数据,则应重写 equals() 和 hashCode() 方法。 12.使用分页 这将提高应用程序的性能。...通常我会遵循如下方式, 类 — 帕斯卡命名 方法和变量 — 驼峰命名 常量 — 大蛇式命名 数据库相关字段 — 短横线命名 这只是一个例子,它可能与我们在公司遵循的标准不同。

21240

iOS面试招人分享

怎么做的 6.GCD队列,同步异步,耗时任务多线程处理,耗时任务多线程处理。...按时间细数一下面试的情况,面试的时候我们领导会跟我一起,我问面试者答,领导听(领导也懂技术),面完技术之后领导会问其他的。...不过后面没有来入职 这次面试经历对我真的非常有用,能与这些人交流,了解和学习不同人的沟通能力,也从这些人身上获取iOS行业的真实信息,知己知彼。受益匪浅,特此也来和大家分享一下。...怎么做的 6.GCD队列,同步异步,耗时任务多线程处理,耗时任务多线程处理。...第四题问block,delegate的运用过程,要求面试者理理思想,讲一下block,delegate从创建到使用的过程和保持安全的办法,我会跟着他们的思维不会让面试者漏下每一步。

90360

【小家Java】Lombok的使用详解(最详尽的解释,覆盖讲解所有可用注解),解决@Builder.Default默认值问题

@Delegate 注释的属性,会把这个属性对象的公有非静态方法合到当前类 代理模式,把字段的方法代理给类,默认代理所有方法。...注意:公共 非静态方法 public class Demo extends Parent { private final int finalVal = 10; @Delegate...UtilityClass 工具类 会把所有字段方法static掉,没啥用 @Wither 生成withXXX方法,返回类实例 没啥用,因为还有bug ---- @Builder和@NoArgsConstructor一起使用冲突问题...我们发现手动书写出来的空构造,默认值是生效的。这点需要特别注意。 这个就不说是Lombok的bug了,因为既然你都使用Lombok了,为何还自己写空构造呢?不是作死吗?...从上面的Lombok执行的流程图中可以看出,在Javac 解析成AST抽象语法树之后, Lombok 根据自己编写的注解处理器,动态地修改 AST,增加新的节点(即Lombok自定义注解所需要生成的代码

3.1K20
领券