Инициализируйте внутренний объект только один раз - PullRequest
2 голосов
/ 15 декабря 2011

В Scala у меня есть следующий класс:

class A(param: String) {
  object B {
    lazy val db = {new D(param)}
  }
}

, а затем из клиентского кода я должен создать объекты класса A несколько раз, но параметр B.db должен быть инициализирован только один раз.В настоящее время это не работает, так как каждый раз создается новый экземпляр объекта B и создается экземпляр класса A.

Чтобы добавить немного перспективы, объект B.db является экземпляром Mongoкласс, который согласно документации нужно инициализировать только один раз.Как бы вы поступили об этом?

1 Ответ

8 голосов
/ 15 декабря 2011

поместите его в объект-компаньон вместо внутреннего объекта

object A {
   apply(param:String) {
      new A             
   }

   lazy val db = {..}
}
class A{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...