有什么方法可以将记录与继承一起使用吗?

2022-06-16 00:00:00 java record

我有许多使用Lombok的@Data类,我想迁移所有这些类以使用Java 14中提供的新录音功能。

我知道这有点早,但这是我正在进行的一项实验性测试。

这里的主要问题是涉及继承。我有一个类B,它扩展了一个类A。有什么方法可以将Records与继承一起使用吗?


解决方案

JEP说明:

对记录的限制


Records不能扩展任何其他类,并且不能声明与状态描述的组件相对应的私有最终字段以外的实例字段。声明的任何其他字段都必须是静态的。这些限制确保仅由状态描述定义表示形式。

但是,它们可以实现接口并定义实例方法,因此您可以多态地使用它们。此外,由于它们将继承默认方法,因此它们确实支持有限形式的继承。

此时,Java语言规范未指定记录结构及其语义。

相关文章