在Scala中,我有以下课程:
class A(param: String) {
object B {
lazy val db = {new D(param)}
}
}
然后从客户端代码我必须多次创建A类对象,但只能初始化一次B.db参数。目前,这不起作用,因为每次创建A类实例时都会创建对象B的新实例。
为了添加一些透视图,B.db对象是Mongo类的一个实例,根据文档需要只初始化一次。你会怎么做呢?
答案 0 :(得分:8)
将它放在伴侣对象而不是内部对象
中object A {
apply(param:String) {
new A
}
lazy val db = {..}
}
class A{
}