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)?

È stato utile?

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:

    .
  1. È un campo in una classe nota, quindi l'implementazione Deseializzatore legge ciascun campo nel suo ordine corretto.

  2. Ci sono informazioni digitali incorporate nel flusso in qualche modo per far sapere.Il metodo writeClassAndObject() in Kryo 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.

  3. Inoltre, questo è ciò che MessagePack Format Mandates pure ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top