记录不能扩展另一个类。因此,"密封类 "+"记录 "根本就不起作用。
记录 可以但是,实现接口,'密封类'的建议是这个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
界面。
这两个功能似乎完全是正交的。它们并不妨碍对方,也不需要或至少(显著)受益于另一个的存在。