У меня есть простой класс в Scala. Я хочу инициализировать некоторые данные при создании класса. Это мой код:Scala инициализирует конструктор, вызываемый более одного раза
class SomeClass(someSeq: Seq[Int]) {
val someMap = scala.collection.mutable.Map.empty[Int, Set[String]]
init()
def init(): Unit = {
println("init")
}
override def getData(aValue: Int): Set[String] = {
println("I was called")
}
}
И код, который запускает его:
def someClass = new SomeClass(a)
for (i <- 1 to 3) {
someClass.getData(i)
}
Это выход:
init
init
I was called
init
I was called
init
I was called
Код в "Init" инициализирует "someMap".
По какой-то причине метод Init вызывается каждый раз, когда я вызываю метод getData. Что я делаю не так?
«метод Init дозвонились каждый раз, когда я вызываю метод„GetData“.» Нет, нет. Или, если вы думаете иначе, напишите полный код, который показывает, что он делает. –
Да, да. Я обновился, чтобы показать код. – bashan
Нет, это не так. См. Мой ответ. –