Serialización Singleton en Kotlin

Me pregunto si es posible en Kotlin deserializar (restaurar valores de propiedad) de un object declarado, sin tener que asignar manualmente las properties o recurrir a la reflexión . El siguiente fragment más explica:

object Foo: Serializable { var propOne: String = "" // ... fun persist() { serialize(this) // no problem with serialization } fun restre(bytes: ByteArray) { val fooObj: Foo = deserialize(bytes) as Foo // It seems Kotlin allows us to use singleton as type! // obvioulsly either of the following is wrong: // this = fooObj // Foo = fooObj // ... is there a way to 'recover' the singleton (object) other than // manual assignment of properties (or reflection) ??? } } 

No hay forma de reasignar la reference global a un singleton con una nueva instancia. A lo sumo, puede escribir las properties durante la serialization, y luego, en la deserialization, leer directamente las properties y cambiar el estado en el object original. Se requerirá un código personalizado para que usted pueda asignar las properties al object ya sea por asignación directa o por reflexión. Sería mejor si crea su propio mecanismo singleton que contiene una instancia que puede cambiar para que sea otra instancia que deserialice.