因为我打算只重载构造函数以供公共使用来创建类实例,所以我想使主构造函数变为私有。这在Scala中是否可行?
答案 0 :(得分:25)
是的,你可以:
class A private (x: Int) {
def this() = this(42)
}
答案 1 :(得分:5)
是 - 您可以通过在类名后指定修饰符来确定主构造函数的可见性,例如:
class Foo private (a: Int, b: String) {
// ...
}
当然,辅助构造函数仍然(实际上必须)引用此主构造函数,同时仍然被声明为public。