2016-12-30 5 views
0

外クラスのコンストラクタの引数は見えないがここに私のクラスである -スカラ:

class Component(name: String, kind: String, 
       signature: ComponentSignature) { 
    val steps = mutable.ListBuffer.empty[StreamAssignment] 

    def addStep(assignment: StreamAssignment) = { 
    steps += assignment 
    } 
} 

私はどこかに、以下の使用方法がある -

def addSource(src: Component) = { 
    sources += (src.name, src) 
} 

を私はコンポーネントのフィールドを持っていないエラーを取得しています"名"。

私の理解は、可視性に関する限り、クラス内で宣言されたvalのようなものです。私は何が欠けていますか?

+0

。 – Carcigenicate

答えて

2

クラスのコンストラクタのパラメータの外に見えるようにしたい場合のように、あなたは、構造パラメータでvalを使用する必要があります。私はあなたがそれが暗黙のうちにメンバーを作成するためのアクセス修飾子を指定すると思っていた

class Component(val name: String, val kind: String, 
       val signature: ComponentSignature) { 
+0

ありがとうございます。完全にそれを逃した。私の悪い。 – anindyaju99

+0

あるいは 'case class'を使うと、自動的に最初のパラメータリスト' val's全体が作られます。 –