Rilevamento del tipo di serializzazione KRYO
-
24-12-2019 - |
Domanda
Sto usando KRYO IO direttamente per fare la mia serializzazione primitiva a basso livello di stringhe, lunghi e raddoppia.
Quello che mi chiedo è se c'è un modo per KRYO IO di rilevare automaticamente i tipi primitivi dei dati dei byte serializzati quando li leggono?
Se ho una matrice di byte di diciamo 10 valori serializzati, e non so se fossero stringhe, desideri o raddoppiati;C'è un modo per KRYO per determinare i tipi di dati (come MsgPack Can)?
Soluzione
Kryo
non è diverso dalla normale serializzazione Java a questo riguardo.Ci sono due modi in cui il deserializzatore può sapere quale tipo è deserializzazione ogni volta:
- .
-
È un campo in una classe nota, quindi l'implementazione Deseializzatore legge ciascun campo nel suo ordine corretto.
-
Ci sono informazioni digitali incorporate nel flusso in qualche modo per far sapere.Il metodo
writeClassAndObject()
inKryo
fa solo quello - Apporta un identificatore di classe compatto al contenuto effettivo dell'oggetto, lasciando che il deserializzatore sappia cosa fare.In alternativa, puoi fare qualcosa di simile a questo manualmente ad es.Inviando un singolo byte che selezionare tra un numero limitato di tipi supportati.
Inoltre, questo è ciò che MessagePack
Format Mandates pure ...