创建不可变的数据结构,我真的很喜欢 Scala 的概念,您可以使用案例类(具有私有规范构造函数)和伴随对象,以这种方式仅通过工厂方法强制对象实例化。
final case class Foo private(a: Int)
object Foo {
def apply(left: Int, right: Int) = Foo(left + right)
}
Run Code Online (Sandbox Code Playgroud)
Java 14 中引入了记录的概念,提供了 Scala 的大部分案例类功能。然而,制作记录的规范构造函数private似乎有点麻烦......有没有办法用Java的记录实现相同的行为?