我正在尝试使用私有主构造函数和该主要构造函数类的伴随对象创建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
答案 0 :(得分:1)
你在REPL尝试吗?除非您使用:paste
模式,否则Repl不会处理伴随对象。
只要类和对象具有相同的名称并且在同一个文件中,就应该编译。
要回答你的问题,不,这不是“正确的方法”。正确的方法是完全摆脱类,只使用对象本身作为单例。