Могу ли я переопределить имя аргумента конструктора класса, чтобы использовать его как открытое свойство? - PullRequest
2 голосов
/ 19 ноября 2011

Мне нужно что-то вроде этого:


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

могу ли я как-нибудь повторно использовать имена аргументов конструктора? Мне это нужно, потому что я хочу использовать именованные аргументы в вызовах конструктора и по-прежнему настраивать вывод свойств с тем же именем.

1 Ответ

5 голосов
/ 19 ноября 2011

Используйте другие имена в основном конструкторе и имена, которые вы хотите во вспомогательном:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...