我想爲我的應用程序創建一個單例對象,但我想從另一個對象初始化它。Scala:通過調用構造函數創建單例對象
對於前:
object A{
val x = 10
val b = B(x)
}
object B(y:Int){
var z = y
}
但是,這是行不通的,因爲對象可是沒有構造函數。 我需要從另一個對象初始化對象,因爲在運行時會知道val x(在上例中)。
針對此問題的任何解決方法?
我想爲我的應用程序創建一個單例對象,但我想從另一個對象初始化它。Scala:通過調用構造函數創建單例對象
對於前:
object A{
val x = 10
val b = B(x)
}
object B(y:Int){
var z = y
}
但是,這是行不通的,因爲對象可是沒有構造函數。 我需要從另一個對象初始化對象,因爲在運行時會知道val x(在上例中)。
針對此問題的任何解決方法?
scala中的對象被延遲加載,這意味着它們只會在需要時纔會被實例化。
如果您在想要的構造函數調用之前不使用該對象,您可以簡單地將init函數用作構造函數,那麼該對象將被實例化。
可能的重複[如何初始化對象值只有在運行時已知值?](http://stackoverflow.com/questions/8782448/how-do-i-initialize-object-vals-with-values-只有運行時才知道) – 757071
http://stackoverflow.com/q/27801150/1296806的副本,但它不是一個很好的用例,你想避免考慮初始化順序的B/C。 –