我的代碼中有一件奇怪的事情,無法確定原因。也許這是我不知道的Scala功能。斯卡拉案例分類。私有變量未初始化
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