2017-09-16 214 views
0

我使用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 => 
+0

我无法重现你的问题,如:我可以重现的错误发生在2.12,但我不能重现该错误不会发生在2.11中。事实上,我确信从每个版本至少2.8开始就会出现错误,并且可能至少在所有2.x版本中都会出现错误。 –

回答

1

您需要导入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 ...") 
    } 
} 
+0

谢谢,它正在工作,但为什么现在它是这样的,它在2.11中没有导入工作,我认为同伴对象属性可以从同伴类访问,如果两者都定义在同一个文件中。 – jerome

+0

无法在2.11中导入(我已经用2.11.8测试过)。你确定你没有导入MusicController._?可能是它在文件的最顶端?或者你可以显示整个来源? – Teimuraz

+0

我无法显示它是我下载的视频的来源。您可能是最关键的进口商。谢谢。 – jerome

相关问题