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

Iva*_*van 2 scala

我需要这样的东西:


class MyClass(a: String = "", b: String = "") {
  def a = this.a
  def b = if(this.b.isEmpty) this.a else this.b
}
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*nov 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
}
Run Code Online (Sandbox Code Playgroud)