我的代码中有一件奇怪的事情,无法确定原因。也许这是我不知道的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