如何使用运行时参数在Scala中创建单个对象

时间:2015-01-06 14:51:09

标签: scala

我试图用运行时指定的参数创建一个单例对象。 例如:

object NetworkPusher {
  val networkAdress = ???
  ...
 }

想象一下,networkAdress参数来自命令行。有人可以帮我解决这个问题吗? THX!

2 个答案:

答案 0 :(得分:6)

单身人士懒洋洋地被初始化。

scala> :pa
// Entering paste mode (ctrl-D to finish)

object Net {
  val address = Config.address
}
object Config { var address = 0L }

// Exiting paste mode, now interpreting.

defined object Net
defined object Config

scala> Config.address = "1234".toLong
Config.address: Long = 1234

scala> Net.address
res0: Long = 1234

FWIW。

答案 1 :(得分:0)

使用lazy

object Program {

  var networkAdress: String = _

  def main(args: Array[String]): Unit = {
    networkAdress = args(0)
    println(NetworkPusher.networkAdress)
  }

  object NetworkPusher {
    lazy val networkAdress = Program.networkAdress
  }
}
相关问题