我在 scala 编译器中遇到了以下错误。我在jira中找不到问题。因此,我决定先询问这是否是一个已知问题:
我从以下两种方法开始:
def getName: String = getString match {
case None => return ""
case Some(str) => return str
}
def getString: Option[String] = Some("abc")
然后我将第一种方法更改为
lazy val getName: String = getString match {
case None => return ""
case Some(str) => return str
}
不幸的是,我忘记删除 return 语句。在这种情况下,scala 编译器应该以“返回方法定义之外”的消息停止,但它真正做的是:
[ant:scalac] error: uncaught exception during compilation: java.lang.NullPointerException
[ant:scalac] java.lang.NullPointerException
[ant:scalac] at scala.reflect.internal.Trees$class.Select(Trees.scala:1066)
[ant:scalac] at scala.reflect.internal.SymbolTable.Select(SymbolTable.scala:13)
它看起来像一个错误。不是吗?