Scala Singleton模式:私有主构造函数

时间:2016-06-29 23:50:27

标签: scala

我正在尝试使用私有主构造函数和该主要构造函数类的伴随对象创建singleton

以下是代码:

私有小型构造函数

class Car private(var model: String)

同伴对象

object Car {
    val c = new Car("")
    def getInstance = c
}

所以基本上使用上面的代码我将只使用伴随对象的class Car的一个实例。这样的事情:val car = Car.getInstance

这是正确的方法吗?我收到一个错误说:

error: constructor Car in class Car cannot be accessed in object Car

1 个答案:

答案 0 :(得分:1)

你在REPL尝试吗?除非您使用:paste模式,否则Repl不会处理伴随对象。 只要类和对象具有相同的名称​​并且在同一个文件中,就应该编译。

要回答你的问题,不,这不是“正确的方法”。正确的方法是完全摆脱类,只使用对象本身作为单例。