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!