gpt4 book ai didi

scala - Intellij Idea无法识别Scala类中的可变字段,出现 'Reassignment to val'错误

转载 作者:行者123 更新时间:2023-12-02 10:58:53 33 4
gpt4 key购买 nike

我有一个带有一些var字段的Scala类,将其称为A:

class A extends AParent {
var x: String = _
...
}

其中AParent也有一些字段:
abstract class AParent {
var id: Long = _
...
}

当我尝试使用A类在字段x上设置值时,出现 Reassignment to val错误。当x为var时为什么会发生这种情况?
可能重要的信息是,A类及其父类位于通过SBT导入的单独项目中。

有趣的是,对于AParent类的任何字段,我都没有得到相同的“错误”。仅适用于直接在A类中的字段。

此外,当我从命令行运行 sbt clean compile时,一切正常,没有编译错误。
另外,当我回到Idea并运行该应用程序时,它运行良好,可以正常工作,没有错误或发出任何警告。

老实说,这对我来说就像是Idea Bug,但是到目前为止,我还没有遇到类似的经历。

提示版本:
IntelliJ IDEA 2018.1.3 (Ultimate Edition)
Build #IU-181.4892.42, built on May 8, 2018
...
JRE: 1.8.0_152-release-1136-b38 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.4

最佳答案

我在Intellij中尝试过。我需要做的唯一更改是var的默认初始化,例如:

class A extends AParent {
var x: String = _
def setId(newId: Long) {
id = newId
}
}

abstract class AParent {
var id: Long = _
}

object Appl extends App {
val a = new A()
a.setId(234)
println(a.id)
}

关于scala - Intellij Idea无法识别Scala类中的可变字段,出现 'Reassignment to val'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50368168/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com