我试图用运行时指定的参数创建一个单例对象。 例如:
object NetworkPusher {
val networkAdress = ???
...
}
想象一下,networkAdress参数来自命令行。有人可以帮我解决这个问题吗? THX!
答案 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
}
}