2010-07-27 2 views
19

Foo sınıfım var, Serializable. Grafik bir nesneyi temsil eder ve serileştirmeden önce tutamaçlarını duruma geri döndürmesini istiyorum. Tüm veriler nesne içinde saklanır, sadece doğru zamanda çağrılacak bir yönteme ihtiyacım var. Bunu nasıl başarabilirim? Java'da bu mümkün mü?Seri hale getirme işleminden sonra otomatik olarak nasıl bir yöntem yürütülür?

(Ben ListBar nesne benim Foo s var ve diğer bazı yerlerde -. Ben elle yapmak istemiyorum bu yüzden) seri hale getirme sırasında özel işlem gerektiren

cevap

29

Sınıflar ve seri kaldırma işlemi bu kesin imzalarla özel yöntemler uygulamak gerekir:

private void readObject(java.io.ObjectInputStream in) 
    throws IOException, ClassNotFoundException; 

bu yöntemi uygulamak ve in.defaultReadObject() arayın ve sonra d o istediğiniz özel mantık ne olursa olsun.

Kontrol fazla ayrıntı için java.io.Serializable docs

+1

Bu gerçekten bana çok yardımcı oldu. Bu gibi şeylere dilek kitaplarda daha fazla öğretildi. – eaglei22