gpt4 book ai didi

Java记录与 Lombok @Value

转载 作者:行者123 更新时间:2023-12-03 20:23:25 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Lombok getter/setter vs Java 14 record

(6 个回答)


去年关闭。




记录是自 Java 14(第一次预览版)和 Java 15(第二次预览版)以来的新语言功能。
据我了解,它们将用于减少不可变数据对象中的样板代码。
所以这一行:

public record Person (String firstName, String lastName) {}
等价于声明一个具有私有(private) final 字段、每个字段的 getter、公共(public)构造函数和 equals、hashCode 和 toString 方法的类。
然而,这与使用 lombok @Value 几乎相同。注解:
@Value
public class Person {

String firstName;
String lastName;
}
除了你显然不需要处理lombok依赖之外,使用记录有什么好处吗?

最佳答案

除了什么Axel已经建议:

  • @Valuerecord 时生成不可变的 Java bean不是java bean。
  • 记录是一个内置功能,它不需要任何插件或安装。
  • Lombok 允许从类继承,而记录继承 j.l.Record .扩展一个类会生成一个不言自明的警告:

  • Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '(callSuper=false)' to your type.

    关于Java记录与 Lombok @Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66221449/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com