我想为我的应用程序创建一个单例对象,但我想从另一个对象初始化它。
例如:
object A{
val x = 10
val b = B(x)
}
object B(y:Int){
var z = y
}
但这不起作用,因为对象没有构造函数。 我需要从另一个对象初始化对象,因为在运行时将知道val x(在上面的例子中)。
对此有何解决方法?
答案 0 :(得分:1)
Object没有构造函数,因为它是静态初始化的(一旦加载)。您可能正在寻找的是一个普通的课程:
class B(y: Int) {
var z = y
}
如果你真的需要一个单身,你为什么需要从另一个对象初始化它?
答案 1 :(得分:0)
scala中的对象是延迟加载的,这意味着它们只会在需要时进行实例化。
如果你没有在想要的构造函数调用之前使用该对象,你只需要一个init函数作为构造函数,那么该对象将被实例化。