Scala:通过调用构造函数创建单例对象

时间:2016-02-23 07:34:18

标签: scala scala-collections

我想为我的应用程序创建一个单例对象,但我想从另一个对象初始化它。

例如:

object A{
 val x = 10
 val b = B(x)
}

object B(y:Int){
var z = y
}

但这不起作用,因为对象没有构造函数。 我需要从另一个对象初始化对象,因为在运行时将知道val x(在上面的例子中)。

对此有何解决方法?

2 个答案:

答案 0 :(得分:1)

Object没有构造函数,因为它是静态初始化的(一旦加载)。您可能正在寻找的是一个普通的课程:

class B(y: Int) {
  var z = y
}

如果你真的需要一个单身,你为什么需要从另一个对象初始化它?

答案 1 :(得分:0)

scala中的对象是延迟加载的,这意味着它们只会在需要时进行实例化。

如果你没有在想要的构造函数调用之前使用该对象,你只需要一个init函数作为构造函数,那么该对象将被实例化。