当前位置: 首页 > 知识库问答 >
问题:

如何在jdk11中实现java jdk14记录?[闭门]

谷梁卓
2023-03-14

我希望避免一些样板代码。我看到jdk14有如下示例所示的记录。

https://www.logicbig.com/tutorials/core-java-tutorial/java-14-changes/records.html

我如何做类似于jdk11中记录的事情?

共有2个答案

蔺德曜
2023-03-14

可以使用代码生成。没有14Java简洁,但聊胜于无。AutoValue是相当惊人的。

import com.google.auto.value.AutoValue;

@AutoValue
abstract class Animal {
  static Animal create(String name, int numberOfLegs) {
    return new AutoValue_Animal(name, numberOfLegs);
  }

  abstract String name();
  abstract int numberOfLegs();
}
鲜于勇
2023-03-14

我强烈推荐Lombok项目(地点在这里)https://projectlombok.org/).根据您列出的示例

 public record Person(String name, String gender, int age) {}

这可以通过Lombok这样做

import lombox.Data

@Data
public class Person() {
    private String name;
    private String gender;
    private int age;
}

Lombox创建getters和setters、toStringhashCode和一个默认构造函数,以及一个包含所有组织的构造函数。

更新:评论中指出记录是不可变的。使用lombok可以通过几种方式轻松实现这一点。备选案文1:

import lombox.Data

@Data
public class Person() {
    private final String name;
    private final String gender;
    private final int age;
}

这将再次添加所需的args构造函数@Data由于相对明显的原因,没有为final字段创建setter。

选项2更为明确:

import lombok.*;

@RequiredArgsConstructor
@EqualsAndHashCode
@Getter
public class Person() {
    private String name;
    private String gender;
    private int age;
}
 类似资料:
  • 问题内容: 我使用AWS EC2指南安装了Spark,并且可以使用脚本正常启动该程序以获取Spark提示,并且还可以成功执行快速入门Quide。 但是,我无法终生解决如何在每个命令后停止所有冗长的日志记录。 我在下面的代码(注释掉,设置为OFF)中的几乎所有可能的情况下都尝试了该文件夹,该文件夹位于我从中以及在每个节点上启动应用程序的文件夹中,没有任何反应。执行每个语句后,我仍然可以打印日志记录语

  • 问题内容: 我是一个初学者,现在我想用java启动GUI应用程序。我开始阅读一些有关FX的书籍,但并未在JDK11上编译..我是否需要使用jdk8还是有什么办法可以在jdk11上完成? 问题答案: JavaFX已脱离JDK11(Oracle的官方JDK和OpenJDK)的捆绑。为了将JavaFX与JDK11结合使用,您必须下载独立的JavaFX11运行时。

  • 我只想关掉记录。我在文档中发现了这一点:https://docs.jboss.org/optaplanner/release/6.2.0.Final/optaplanner-docs/html_single/index.html#logging 然而,我的项目没有回溯。xml文件。 有什么建议吗? 编辑: 我现在已经将以下logback.xml文件添加到类路径的根目录中: 这些jar文件在我的类路

  • 问题内容: 在golang中是否有任何适用于基于级别的日志记录的好的包装器?如果没有,我应该如何自己实施? 我想要的很简单。我想要一些功能,例如 等将其输出显示到stdout并将它们保存在日志文件中(基于作为命令行参数提供给程序的级别)。如何实现此包装器? 问题答案: 现在已有的答案已经很老了,还有更多建议: https://github.com/op/go-logging-比这里小 https:

  • 原关闭原因未解决 有没有办法列出一个域的所有DNS记录? 我知道诸如挖掘和查找之类的事情,但它们仅限于此。例如,如果我有一个子域a记录作为 那么除非我特别要求,例如。 我看不见它。 是否有任何方法(除了通过转到DNS管理器查看记录外)可以准确查看所有DNS记录?

  • 我想设置一个由多个步骤组成的用户注册。每个步骤将以条的形式突出显示。深灰色条将是完成的步骤,浅灰色条将是需要完成的步骤。似乎想不出这样做的方法。请建议。 我们可以在myfitnesspal注册中看到这一点。我在下图的红色框中突出显示了这一点。