2017-09-16 19 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 ...") 
    } 
} 

私は、次のコンパイラエラーがあります。

あなたがMusicControllerのケースをインポートする必要が
not found: value Play 
[error]   case Play => 
not found: value Stop 
[error]   case Stop => 
+0

オブジェクト私はのように、あなたの問題を再現することはできません:私はというエラーを再現することができます2.12で発生しますが、2.11でエラーが発生していないことを再現することはできません。実際、私はエラーが少なくとも2.8以降のすべてのバージョンで発生し、そしておそらく、少なくともすべての2.xバージョンでなることをかなり確信しています。 –

答えて

1

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

関連する問題