20
因爲我只打算公開使用的重載構造函數來創建類實例我想使主構造函數爲私有。這可能在斯卡拉?我可以使主構造函數保持私有狀態,同時在Scala中保留輔助構造函數嗎?
因爲我只打算公開使用的重載構造函數來創建類實例我想使主構造函數爲私有。這可能在斯卡拉?我可以使主構造函數保持私有狀態,同時在Scala中保留輔助構造函數嗎?
是,您可以:
class A private (x: Int) {
def this() = this(42)
}
是 - 你可以在類名後指定的改性劑,如確定主構造的可見性:
class Foo private (a: Int, b: String) {
// ...
}
然後當然輔助構造尚可(實際上,必須)參照本主要構造函數,但仍被宣佈爲公共。
您也可以撥打從同伴對象私有主構造;對工廠方法有用。 – retronym 2012-02-27 14:21:34
雖然不適用於案例類。 – Jus12 2017-11-14 04:49:18