簡體   English   中英

Scala 構造函數如何在 Scala 語言中轉換它

[英]Scala constructor how to convert this in Scala language

嗨,我需要幫助如何使用兩個構造函數在 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);
  }
}
class Configure(private val config :Config) {
  def this()                     = this(ConfigFactory.load())
  def this(confFileName :String) = this(ConfigFactory.load(confFileName))
}

在 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是因為“getter”在 Scala 中通常不以get開頭,它們只是要檢索的值的名稱。 ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM