kotlinx serialization polimorfizm

kotlinx serialization polimorfizm
J5
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:10
0
Kopiuj
@Serializable
@Polymorphic
abstract class A 

@Serializable
data class B(val number: Int): A

@Serializable
data class C(val text: String): A
Kopiuj
    val json = Json(JsonConfiguration.Stable, context = SerializersModule {
        polymorphic(A::class) {
            B::class with B.serializer()
            C:class with C.serializer()
        }
    })

Da się jakoś zrobić, żebym nie musiał podawać serializatora do każdej klasy?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2

Nie mam czasu sprawdzić, ale prawdopodobnie twój problem rozwiąże zrobienie klasy A jako sealed. https://kotlinlang.org/docs/reference/sealed-classes.html


jeden i pół terabajta powinno wystarczyć każdemu
J5
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:10
0

sealed class byłoby idealnym rozwiązaniem, ale musiałbym wszystkie B, C itd. trzymać w jednym pliku.

jarekr000000
To trzymaj. Jakby co, mów że pozwoliłem.
EL
Mnie przekonał! :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.