Prateek Grover
12/26/2019, 6:15 AMPrateek Grover
12/26/2019, 6:18 AMactual open class SomeClass private constructor(
private val someProperty: SomeProperty
) {
actual companion object {
private var someClass: SomeClass? = null
fun initialize(someProperty: SomeProperty){
someClass = SomeClass(someProperty)
}
actual fun getInstance(): SomeClass {
if (someClass == null) {
throw UninitializedPropertyAccessException("SomeClass is not initialised yet")
}
return someClass as SomeClass
}
}
}
Prateek Grover
12/26/2019, 6:19 AMPrateek Grover
12/26/2019, 6:46 AMolonho
12/26/2019, 8:13 AMsomeClassAtomicRef.value = someClass.freeze()
to
someClassAtomicRef.compareAndSet(null, someClass.freeze())
then init will happen only once.Prateek Grover
12/26/2019, 8:15 AMolonho
12/26/2019, 8:15 AMinit
block which fetches config proactively, like it's done in https://github.com/JetBrains/kotlin-native/blob/552984758e4992129d791420a1f266b636b8c26e/samples/tetris/src/tetrisMain/kotlin/Config.kt#L19Prateek Grover
12/27/2019, 3:21 AMjimn
12/27/2019, 7:03 PM