Scala конструктор, как конвертировать это в язык Scala - PullRequest
0 голосов
/ 19 февраля 2019

Привет мне нужна помощь, как преобразовать это в Scala с двумя конструкторами.

public class Configure {
  private final Config config;

  public Configure(String confFileName) {
    config = ConfigFactory.load(confFileName);
  }

  public Configure() {
    config = ConfigFactory.load();
  }

  public String getString(String name) {
    return config.getString(name);
  }
}

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

В Scala вы обычно делаете это, используя объект-компаньон:

class Configure private (config: Config) {
  def configString(name: String) = config.getString(name)
}

case object Configure {
  def apply(confFileName: String ) =
    new Configure(ConfigFactory.load(confFileName))

  def apply() =
    new Configure(ConfigFactory.load())
}

Это прекрасно отделяет поведение класса от различных способов его создания.

[Я переименовал getString потому что «получатели» обычно не начинаются с get в Scala, это просто имя получаемого значения.]

0 голосов
/ 20 февраля 2019
class Configure(private val config :Config) {
  def this()                     = this(ConfigFactory.load())
  def this(confFileName :String) = this(ConfigFactory.load(confFileName))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...