78得票6回答
Lombok的getter/setter与Java 14记录类型

我喜欢项目Lombok,但最近我在阅读并尝试一些Java 14的新功能。 其中的一个新特性是record关键字,它允许创建一个已经内置以下功能的类:构造函数、私有不可变字段、访问器、equals/hashCode、getter和toString方法。 现在我的问题是:我们是应该依赖Lombok...

72得票3回答
Java记录是否有望最终成为值类型?

JDK 14引入的记录预览功能(JEP 384)是一项伟大的创新。它们使得创建简单的不可变类更加容易,这些类是值的纯集合,没有各种库中泛型元组类固有的上下文丢失。 由Brian Goetz编写的JEP描述(https://openjdk.java.net/jeps/384)很好地解释了其意图...

61得票5回答
Java-14后的getter/setter命名约定

Java 14引入了记录特性。使用该特性,创建的getter方法与字段名相同,例如,可以写print(person.name())。但是旧的Java bean规范要求将此方法命名为getName()。 在同一代码库中同时使用两种风格看起来不太好看。将所有内容迁移到记录中是不可能的,因为它们过...

56得票2回答
为什么Java 14不是LTS?

Java 14是非LTS版。 考虑到每6个月发布一次的新版本计划,以及8和11是LTS,难道Java 14不应该是下一个LTS版本吗? 还是完全基于Java架构师决定选择哪个版本作为LTS? 我在网上搜索了但找不到答案。

56得票2回答
为记录定义默认构造函数

我有一个记录并且想要给它添加默认构造函数。public record Record(int recordId) { public Record { } } 但它创建了一个带有int参数的构造函数。 public final class Record extends java....

52得票3回答
你需要为记录类型覆盖hashCode()和equals()方法吗?

假设以下示例:public record SomeRecord(int foo, byte bar, long baz) { } 如果我要将对象添加到HashMap中,我是否需要覆盖hashCode和equals方法?

47得票2回答
Java 14中@Serial注解有什么用途?

Java 14引入了一个新的注解@Serial,位于java.io包中。在API文档中它的简要描述如下: 指示已注释的字段或方法是由Java对象序列化规范定义的序列化机制的一部分。 据我所知,该注解用于编译时验证(类似于@Override),以检查是否正确使用了序列化机制的方法和字段。我不...

40得票2回答
如何记录Java Record参数?

如何记录Java Record参数?我指的是最终成为构造函数参数和类字段的参数。 我尝试过: /** * @param name the name of the animal * @param age the age of the animal */ public record An...

38得票3回答
Java 14中的NullPointerException与其前身有何不同?

Java SE 14引入的一个重要特性是Helpful NullPointerExceptions,它与NullPointerException的可用性有关。相较于其前身,Java SE 14中的NullPointerException有何改进之处?

36得票3回答
如何在Java文本块中为变量值设置占位符?

我如何在 Java 文本块 中插入一个 变量 ? 像这样:""" { "someKey": "someValue", "date": "${LocalDate.now()}&qu...