I\'m trying to create a singleton object with parameters which are specified by runtime. Example:
object NetworkPusher {
val networkAdress = ???
...
}
Using 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
}
}
Singletons are initialized lazily.
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.