JvmSerializerReplacement
Simplifies implementing custom java.io.Serializable
(JvmSerializable) logic.
Your class must inherit from JvmSerializable and call this function in the writeReplace()
function. This must be used in combination with RawSerializer. Example:
class Foo(val url: Url) : JvmSerializable {
private fun writeReplace(): Any = JvmSerializerReplacement(FooJvmSerializer, this)
}
internal object FooJvmSerializer : JvmSerializer<Foo> {
override fun jvmSerialize(value: Foo): ByteArray =
value.url.toString().encodeToByteArray()
override fun jvmDeserialize(value: ByteArray): Foo =
Foo(Url(value.decodeToString()))
}
Content copied to clipboard