伴侣对象的情况下对象
问题描述:
我使用Scala的2.12,我试了一段代码,在2.11版本编码的,它不会再编译:伴侣对象的情况下对象
object MusicController {
sealed trait ControllerMsg
case object Play extends ControllerMsg
case object Stop extends ControllerMsg
}
// Music Controller
class MusicController extends Actor {
def receive = {
case Play =>
println("Music Started ...")
case Stop =>
println("Music Stopped ...")
}
}
我有以下的编译器错误:
not found: value Play
[error] case Play =>
not found: value Stop
[error] case Stop =>
答
您需要导入MusicController的对象来说
object MusicController {
sealed trait ControllerMsg
case object Play extends ControllerMsg
case object Stop extends ControllerMsg
}
// Music Controller
class MusicController extends Actor {
import MusicController._ // <-- IMPORT THIS
def receive = {
case Play =>
println("Music Started ...")
case Stop =>
println("Music Stopped ...")
}
}
我无法重现你的问题,如:我可以重现的错误发生在2.12,但我不能重现该错误不会发生在2.11中。事实上,我确信从每个版本至少2.8开始就会出现错误,并且可能至少在所有2.x版本中都会出现错误。 –