Il s'agit de Java. Si vous souhaitez sérialiser un objet Si vous ajoutez Serializable à l'interface, il sera sérialisé. Cependant, c'est un mémo à ce moment-là que faire s'il n'est pas sérialisé même si Serializable est ajouté.
En premier lieu, le processus de sérialisation consiste à convertir en une chaîne de caractères récupérable. Il est utilisé pour permettre de lire quelque chose qui n'existe que dans l'espace mémoire, tel que Object.
(Détails ci-dessous) https://docs.oracle.com/javase/jp/8/docs/api/java/io/Serializable.html
Lorsque vous souhaitez conserver les informations d'objet avec Redis, etc., sérialisez-les une fois (bien sûr, vous n'avez pas besoin de prendre la méthode de sérialisation) Il est possible de conserver les informations sur l'objet.
Cependant, il existe des informations d'objet compliquées et une exception de type JDK qui ne peut pas être sérialisée se produit, ou Si des informations variables inutiles sont sérialisées et que les performances sont dégradées, Il est possible de spécifier celui à sérialiser individuellement.
À ce moment, ce qui peut être utilisé Externalizable
Sera.
public class HogeModel implements Externalizable {
/**
*Processus de sérialisation d'origine
*
* @param out flux de sortie
* @jette une erreur IOException IO
*/
@Override
@SuppressWarnings("resource")
public void writeExternal(final ObjectOutput out) throws IOException {
Packer pk = MessagePackManager.getInstance().createPacker((OutputStream) out);
pk.write(this.hogehoge);
}
/**
*Processus de désérialisation original
*
* @param dans le flux d'entrée
* @jette une erreur IOException IO
*/
@Override
public void readExternal(final ObjectInput in) throws IOException {
try {
@SuppressWarnings("resource")
Unpacker upk = MessagePackManager.getInstance().createUnpacker((InputStream) in);
this.hogehoge = upk.readInt();
} catch (IOException e) {
throw e;
} catch (Exception e) {
throw new IOException(e);
}
}
}