0

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

class Class1 {

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

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

我不仅要获取strArg并返回它,还要对其进行一些更改并返回它的新修改副本。

我怎样才能做到这一点?

4

1 回答 1

3

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

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

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

class Class1 private(strArg: String) {
  val strArgPublic = transform(strArg)
  def this() = this("default")
}
于 2013-07-03T04:11:34.157 回答