2016-11-18 9 views
1

リストオブジェクトに下記のsomeFunctionでアクセスする必要がありますが、コンパイルエラーnot found: value listが表示されます。コンパニオンオブジェクトからリストにアクセスするには?コンパニオンオブジェクトでクラス要素にアクセスできるようにする

class HelloScala { 
    val list = List (1,2,3) 
} 

object HelloScala { 

    def someFunction = { 
     println(list) 
    } 

} 
+3

これは意味をなさない'HelloScala'クラスのインスタンスがたくさんあるかもしれません。オブジェクトのどちらにアクセスする必要がありますか?それらがすべてのインスタンスで同じ場合は、それらをオブジェクトのメンバーにしてください。 – Suma

答えて

5

クラスのメンバーにアクセスするためには、あなたがそのクラスをインスタンス化する必要があります。

object HellowScala { 
    def someFunction = { 
    println(new HelloScala().list) 
    } 
} 

もっとそう、あなたがやりたいことはコンパニオンオブジェクトにリストメンバーを移動です​​。

class HelloScala { 
    // you can access the companion members here 
    val x = HelloScala.list 
} 

object HelloScala { 

    val list = List (1,2,3) 

    def someFunction = { 
    println(list) 
    } 
} 
関連する問題