我可以覆盖类构造函数参数名称以将其重用为公共属性吗?

时间:2011-11-19 06:14:59

标签: scala

我需要这样的东西:


class MyClass(a: String = "", b: String = "") {
  def a = this.a
  def b = if(this.b.isEmpty) this.a else this.b
}

我可以用某种方式重用构造函数参数的名称吗?我需要这个,因为我想在构造函数调用中使用命名参数,并且仍然自定义同名属性的输出。

1 个答案:

答案 0 :(得分:5)

在主构造函数中使用其他名称,并在辅助构造函数中使用所需的名称:

class MyClass private(_a: String, _b: String, _c: Any) { // _c is a dummy
  def this(a: String = "", b: String = "") = this(a, b, null)
  def a = _a
  def b = if(_b.isEmpty) _a else _b
}