Java中什么时候密封的类和记录一起使用?

问题描述 投票:2回答:1

JEP 在密封类上说。

密封类不依赖于记录(JEP 384)或模式匹配(JEP 375),但它们与这两者配合得很好。

"工作良好 "是什么意思?在一些特定的情况下,有什么建议可以使用这种组合吗?

java record sealed sealed-class
1个回答
1
投票

记录不能扩展另一个类。因此,"密封类 "+"记录 "根本就不起作用。

记录 可以但是,实现接口,'密封类'的建议是这个JEP全称的缩写,即'密封类和接口'。

密封的接口+记录是可行的,我不认为应用'好'这个词在这里特别适用。我觉得应用'好'这个词在这里不是特别适用。我想,它并不是不能用。

你可以让你的记录定义实现一个密封接口。如果你的密封接口包含了任何与记录会自动生成的方法定义相匹配的方法,那么事情就好办了。比如说

public sealed interface Person permits Student, Teacher {
    String name();
}

public record Student(String name, int id) implements Person {}

public record Teacher(String name) implements Person {}

就可以了 记录功能使得 name() 方法的存在,从而使学生和教师实现了。Person 界面。

这两个功能似乎完全是正交的。它们并不妨碍对方,也不需要或至少(显著)受益于另一个的存在。

© www.soinside.com 2019 - 2024. All rights reserved.