当前位置: 首页 > 面试题库 >

龙目岛(Lombok)Getter / Setter vs Java 14记录

伍胡媚
2023-03-14
问题内容

我喜欢Lombok项目,但如今,我正在阅读并尝试Java
14的一些新功能。

在新功能内部,有record关键字,该关键字允许创建具有以下内置功能的类:构造函数,私有最终字段,访问器,equals
/ hashCode,getter和toString方法。

现在我的问题是:最好依靠Lombok的功能,还是我们应该开始使用记录功能:

最好使用这个:

record Person (String name, String surname) {}

或者那个:

@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class GetterSetterExample {
  @Getter private int name;
  @Getter private int surname;
}

两种方法的优缺点是什么?


问题答案:

Lombok和recordJava语言的功能是用于不同事物的不同工具。有一些表面上的重叠,但不要让那分散您的注意力。

龙目岛主要是关于 句法
便利性。它是一个预装有一些已知有用代码模式的宏处理器。它没有赋予任何语义。根据您在代码中设置的带有注释的旋钮,它只会自动执行模式。Lombok纯粹是关于实现数据承载类的便利。

记录是一种 语义 特征;他们是 名义元组 。通过进行一个以Point 表示 的元组的语义声明,(int x, int y)编译器可以从该状态描述中得出其表示以及构造,声明,相等,哈希和字符串表示协议。由于它们具有语义,因此读者和框架也可以对记录的API充满信心。(这在语法上也可能很方便;如果是这样,那就太好了。)



 类似资料:
  • 是否有可能为一种类型的字段修改Lombok的Getter?有一个可变的LiveData是LiveData的子级。我希望Lombok为返回LiveData而不是MutableLiveData的MutableLiveData字段创建getter。我希望你明白我的意思。 为了描述我所说的内容,我添加了一些代码: 这是关于Android中的MVVM模式和删除ViewModels中的样板代码。谢谢

  • Lombok@Data annotation将在带注释的类上无声地添加字段的setter和getter。 如何在龙目岛添加基于条件的setter? lombok中有没有这样的支持 我已经在龙目岛文件中搜索了,我没有看到关于我的问题的解释。

  • 我只是试图将一个基于Maven的项目发送到另一台计算机上,而可怕的是,到处都是红色标记!! 但是,构建得很好。 很快,我注意到Lombok没有为我的类生成getter和setter,尽管和被Eclipse正确识别。

  • 问题内容: 我正在使用Java lombok批注@Getter为我的POJO生成吸气剂。我有一个名为“ isAbc”的“布尔”字段。在这种情况下,@ Getter批注生成名为“ isAbc()”的方法。它不应该生成名为“ isIsAbc()”的方法吗? 问题答案: 阅读龙目岛页面上的“小字”部分https://projectlombok.org/features/GetterSetter.html

  • 我在我的实体中使用了lombok注释“@Data”。我试图通过Dto Converter使用getter,就像我在没有lombok的情况下正常使用一样。不知何故,它没有像我预期的那样工作。看起来我的lombok没有创建getter,或者我没有访问权限? Dto转换器:

  • 我想在我的类中使用lombok+@slf4j添加一个额外的记录器。当前,我正在使用@slf4j,它创建 私有静态最终org.slf4j.logger log=org.slf4j.loggerFactory.getLogger(logExample.class)。 我正在使用这个标准日志记录,我想创建另一个日志记录程序在类中的特定日志记录。 若要将特定日志输出到单独的文件,请执行以下操作。这是手动操