Scala:类构造函数args在外面不可见

时间:2016-12-30 03:56:24

标签: scala

这是我的班级 -

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)
}

我收到的错误是Component没有字段" name"。

我的理解是,就可见性而言,构造函数arg就像在类中声明的val。我错过了什么?

1 个答案:

答案 0 :(得分:2)

如果希望在类构造函数参数外部可见,则应将val与构造参数一起使用,如:

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