SORU
2 NİSAN 2014, ÇARŞAMBA


Nasıl bir lambda seri hale getirmek için?

Ne kadar zarif bir lambda hale getirebilirim?

Örneğin, aşağıdaki kod NotSerializableException atar. Nasıl SerializableRunnable oluşturmadan bunu düzeltebilirim "kukla" arabirim?

public static void main(String[] args) throws Exception {
    File file = Files.createTempFile("lambda", "ser").toFile();
    try (ObjectOutput oo = new ObjectOutputStream(new FileOutputStream(file))) {
        Runnable r = () -> System.out.println("Can I be serialized?");
        oo.writeObject(r);
    }

    try (ObjectInput oi = new ObjectInputStream(new FileInputStream(file))) {
        Runnable  r = (Runnable) oi.readObject();
        r.run();
    }
}

CEVAP
2 NİSAN 2014, ÇARŞAMBA


Java 8 6* *imkanı sunuyor. Seri hale getirme durumunda, bu nedenle mümkün yazmak için:

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

Ve lambda otomatik olarak yüklenecektir seri hale getirilebilir olur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hans peder sahl

    hans peder s

    22 Temmuz 2009
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011
  • Study with Substance P

    Study with S

    31 Mayıs 2008