[JAVA] Lorsque la sérialisation échoue

Que faire si la sérialisation échoue

introduction

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é.

Qu'est-ce que la sérialisation?

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.

Lorsque la restauration de la sérialisation échoue

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);
		}
	}

}

Recommended Posts

Lorsque la sérialisation échoue
Lorsque l'installation de l'interface utilisateur sémantique échoue
Sérialisation d'objets Java pourquoi et quand
Réponse lorsque le serveur Tomcat ne démarre pas
Sérialisation Java
Lorsque Eclipse ne parvient pas à démarrer le serveur