Heim >Java >javaLernprogramm >Wie kann ich ein Java-Lambda serialisieren, ohne eine Dummy-Schnittstelle zu erstellen?

Wie kann ich ein Java-Lambda serialisieren, ohne eine Dummy-Schnittstelle zu erstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 17:25:19990Durchsuche

How Can I Serialize a Java Lambda Without Creating a Dummy Interface?

Lambdas in Java serialisieren

Der Versuch, ein Lambda in Java zu serialisieren, kann zu einer NotSerializableException führen. In diesem Artikel wird untersucht, wie Sie diese Hürde elegant überwinden können, ohne auf die Erstellung einer SerializableRunnable-„Dummy“-Schnittstelle zurückgreifen zu müssen.

Im bereitgestellten Beispiel ist das Lambda wie folgt definiert:

Runnable r = () -> System.out.println("Can I be serialized?");

Schreiben dieses Lambda an Ein ObjectOutputStream wirft das NotSerializableException.

Lösung

Java 8 führt die Möglichkeit ein, ein Objekt in eine Schnittmenge von Typen umzuwandeln. Dies kann im Kontext der Serialisierung genutzt werden, wie unten gezeigt:

Runnable r = (Runnable & Serializable)() -> System.out.println("Serializable!");

Diese Umwandlung modifiziert effektiv das Lambda, um sowohl die Runnable- als auch die Serializable-Schnittstelle zu implementieren. Folglich wird das Lambda serialisierbar, ohne dass eine separate „Dummy“-Schnittstelle erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Java-Lambda serialisieren, ohne eine Dummy-Schnittstelle zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn