从私有构造函数获取参数

时间:2013-07-03 04:04:24

标签: scala

我希望在不使用可变变量的情况下访问私有构造函数中的参数:

class Class1 {

  val strArgPublic = // get strArg argument from the private constructor. How?

  private def this(strArg: String) = {
    //.....
  }
}

我不仅希望获得strArg并将其返回,而是稍微更改一下并返回一个新的修改过的副本。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您班级中不仅有私人构造函数。还有一个公共构造函数。您应该在公共构造函数之后确定strArgPublic的值。如果没有公共构造函数,你应该像这样定义你的类:

class Class1 private(strArg: String) {
  val strArgPublic = transform(strArg)
}

如果应该有一个无参数的公共构造函数,你可以将其定义为辅助构造函数:

class Class1 private(strArg: String) {
  val strArgPublic = transform(strArg)
  def this() = this("default")
}