Scala 不鼓励使用副作用的空方法:建议定义为。。。对于IntelliJ

Scala 不鼓励使用副作用的空方法:建议定义为。。。对于IntelliJ,scala,intellij-idea,Scala,Intellij Idea,我在IntelliJ工作表中执行了这个代码块(社区版EAP 15#143.379.11,在JDK 1.8.0_66上使用Scala插件1.9.4) class Plant class Fruit extends Plant class Apple extends Fruit class Box[T <: Fruit](var item: T) { def get: T = item def replace(item: T): Unit = this.item = item }

我在IntelliJ工作表中执行了这个代码块(社区版EAP 15#143.379.11,在JDK 1.8.0_66上使用Scala插件1.9.4)

class Plant
class Fruit extends Plant
class Apple extends Fruit

class Box[T <: Fruit](var item: T) {
  def get: T = item
  def replace(item: T): Unit = this.item = item
}

val appleBox = new Box(new Apple)
println(appleBox.get) // error

如何禁用此错误或将其更改为警告并让我继续?我正在使用IntelliJ。谢谢

为了避免出现错误,请删除
println
,Scala工作表将为您打印对象

    val appleBox = new Box(new Apple)
    appleBox.get

    appleBox: Box[Apple] = Box@4109bbc4
    res0: Apple = Apple@6e2e3a8b

PS:我不知道您在最新的EAP Scala插件(1.9.272)中报告的错误。

为了避免错误,只需删除
println
,Scala工作表将为您打印对象

    val appleBox = new Box(new Apple)
    appleBox.get

    appleBox: Box[Apple] = Box@4109bbc4
    res0: Apple = Apple@6e2e3a8b

PS:我不知道您在最新的EAP Scala插件(1.9.272)中报告的错误。

谢谢,但这并不是我想要的答案。是的,IntelliJ打印对象,但是如果我想通过FileOutStream.write(…)将对象流式输出到文件,我会再次遇到相同的错误。顺便问一下,你在哪里找到1.9.272插件?我在@thlim“如何禁用此错误或将其更改为警告并让我继续?”中找不到它-这是您的问题。如果我误解了这一点,并且认为这不是你想要的答案,我向你道歉。最初的问题没有关于FileOutStream的任何内容。不需要道歉。我很感激你的回答。我正在寻找一个结论性的解决方案,以防我有一个FileOutputStream或任何类似于println(…)的东西导致错误工作表无法使用。也许我需要你正在使用的scala插件。谢谢,但这并不是我想要的答案。是的,IntelliJ打印对象,但是如果我想通过FileOutStream.write(…)将对象流式输出到文件,我会再次遇到相同的错误。顺便问一下,你在哪里找到1.9.272插件?我在@thlim“如何禁用此错误或将其更改为警告并让我继续?”中找不到它-这是您的问题。如果我误解了这一点,并且认为这不是你想要的答案,我向你道歉。最初的问题没有关于FileOutStream的任何内容。不需要道歉。我很感激你的回答。我正在寻找一个结论性的解决方案,以防我有一个FileOutputStream或任何类似于println(…)的东西导致错误工作表无法使用。也许我需要你正在使用的scala插件。