У меня странная вещь в моем коде и не могу понять причину. Возможно, это функция Scala, о которой я не знаю.Scala кейс класс. Частный var не инициализирован
case class Page(index:Int) {
private var lines = Map[Int, Line]()
def set(index:Int, line:Line):Page = {
val copy = this.copy()
copy.lines = this.lines + (index -> line) // <-- My problem
copy
}
}
Моя проблема заключается в том, что линия copy.lines = this.lines + (index -> line)
поднять NullPointerException потому что this.lines
является недействительным. Однако copy.lines
не является нулевым.
Вы знаете, почему карта lines
инициализируется при копировании Page
, но не тогда, когда я создаю новую?
Благодаря
Я не получаю никаких ошибок из этого кода - вы уверены, что вы не оставили фрагмент кода, который мог бы объяснить ошибку? – Shadowlands
Какая версия Scala? 2.11 работает безупречно. – Reactormonk
Работает с 2.11.7 – TheKojuEffect