gpt4 book ai didi

java - Lombok getter/setter vs Java 14 记录

转载 作者:行者123 更新时间:2023-12-01 07:28:47 25 4
gpt4 key购买 nike

我爱项目Lombok但是这些天来,我正在阅读并尝试 java 14 的一些新功能。
在新功能中,有 record允许创建具有以下内置功能的类的关键字:构造函数、私有(private)最终字段、访问器、equals/hashCode、getter、toString 方法。
现在我的问题是:更好地依赖 Lombok 的功能还是我们应该开始使用记录功能:
最好使用这个:

record Person (String name, String surname) {}
或者那个:
@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class Person {
@Getter private int name;
@Getter private int surname;
}
这两种方法的优缺点是什么?

最佳答案

Lombok 和record Java 语言的特性,是针对不同事物的不同工具。有一些表面上的重叠,但不要让它分散你的注意力。

Lombok 主要是为了语法便利。它是一个预加载了一些已知有用的代码模式的宏处理器。它不赋予任何语义;它只是根据您在带有注释的代码中设置的一些旋钮来自动化模式。 Lombok 纯粹是为了方便实现数据承载类。

记录是一种语义特征;它们是名义元组。通过作出 Point 的语义声明是 (int x, int y) 的元组,编译器可以从这个状态描述中导出它的表示,以及构造、声明、相等、散列和字符串表示协议(protocol)。因为它们带有语义,阅读器和框架也可以对记录的 API 有更高的信心。 (这在语法上也可能很方便;如果是这样,那就太好了。)

关于java - Lombok getter/setter vs Java 14 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61306802/

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