[JAVA] Wenn die Serialisierung fehlschlägt

Was tun, wenn die Serialisierung fehlschlägt?

Einführung

Es geht um Java. Wenn Sie ein Objekt serialisieren möchten Wenn Sie der Schnittstelle Serializable hinzufügen, wird diese serialisiert. Zu diesem Zeitpunkt ist es jedoch ein Memo, was zu tun ist, wenn es nicht serialisiert wird, selbst wenn Serializable hinzugefügt wird.

Was ist Serialisierung?

Erstens besteht der Serialisierungsprozess darin, in eine wiederherstellbare Zeichenfolge zu konvertieren. Es wird verwendet, um das Lesen von Objekten zu ermöglichen, die nur im Speicherbereich vorhanden sind, z. B. Object.

(Details unten) https://docs.oracle.com/javase/jp/8/docs/api/java/io/Serializable.html

Wenn Sie Objektinformationen mit Redis usw. beibehalten möchten, serialisieren Sie sie einmal (natürlich müssen Sie die Serialisierungsmethode nicht anwenden). Es ist möglich, die Objektinformationen beizubehalten.

Wenn die Wiederherstellung der Serialisierung fehlschlägt

Es gibt jedoch komplizierte Objektinformationen, und es tritt eine Ausnahme vom Typ JDK auf, die nicht serialisiert werden kann, oder Wenn unnötige Variableninformationen serialisiert werden und die Leistung beeinträchtigt wird, Es ist möglich, die zu serialisierende einzeln anzugeben.

Zu diesem Zeitpunkt kann was verwendet werden Externalizable

Wird sein.


public class HogeModel implements Externalizable {

	/**
	 *Ursprünglicher Serialisierungsprozess
	 *
	 * @param out Ausgabestream
	 * @löst einen IOException IO-Fehler aus
	 */
	@Override
	@SuppressWarnings("resource")
	public void writeExternal(final ObjectOutput out) throws IOException {

		Packer pk = MessagePackManager.getInstance().createPacker((OutputStream) out);

		pk.write(this.hogehoge);
	}


	/**
	 *Ursprünglicher Deserialisierungsprozess
	 *
	 * @Parameter im Eingabestream
	 * @löst einen IOException IO-Fehler aus
	 */
	@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

Wenn die Serialisierung fehlschlägt
Wenn die Installation von semantic-ui fehlschlägt
Java Object Serialization warum und wann
Antwort, wenn der Tomcat-Server nicht gestartet werden kann
Java-Serialisierung
Wenn Eclipse den Server nicht starten kann