"Halo, Amigo! Aku pengin nambah sethitik kanggo Ellie ngandika."

Kadhangkala sampeyan kudu ngontrol proses serialisasi. Ing ngisor iki sawetara alasan:

1) Obyek ora siap kanggo serialisasi : kahanan internal saiki lagi diowahi.

2) Obyek ngemot obyek non-serializable, nanging bisa ngowahi menyang wangun sing bisa gampang serialized , contone, nyimpen minangka array byte utawa liyane.

3) Objek pengin deserialize kabeh data minangka siji unit lan / utawa kanggo encrypt sadurunge serialization.

Ana akeh alasan kenapa sampeyan pengin nindakake serialisasi kanthi manual. Nanging kita ora pengin kelangan kabeh kaluwihan sing nawakake serialisasi standar. Sawise kabeh, obyek kita bisa nggunakake obyek liyane. Nanging padha ora bisa serialized yen obyek kita ora ndhukung serialization.

Kahanan iki uga duwe solusi: antarmuka Externalizable . Kita kudu ngaturake panuwun marang para pangripta Jawa sing visioner. Mung ngganti antarmuka Serializable karo antarmuka Externalizable , lan kelas sampeyan bisa ngatur proses serialization kanthi manual.

Antarmuka Externalizable duwe rong cara, sing ora ana ing antarmuka Serializable , sing diarani mesin Java nalika obyek serialisasi. Mangkene tampilane:

Kode
class Cat implements Externalizable
{
 public String name;
 public int age;
 public int weight;

 public void writeExternal(ObjectOutput out)
 {
  out.writeObject(name);
  out.writeInt(age);
  out.writeInt(weight);
}

 public void readExternal(ObjectInput in)
 {
  name = (String) in.readObject();
  age = in.readInt();
  weight = in.readInt();
 }
}

Ngelingake apa wae?

"Moly Suci! Iki persis carane kita nyoba kanggo nyimpen obyek sadurunge kita dianggep serialization."

"Iki ndadekake kabeh prasaja: yen serialization standar nyukupi, kita mung oleh warisan antarmuka Serializable . Yen ora nyukupi, banjur kita oleh Externalizable lan nulis kode dhewe kanggo nyimpen / mbukak obyek kita."

"Nanging kelas ditandhani Externalizable dianggep serializable? Kita bisa nggunakake kelas kuwi kanggo" aman "simpen referensi kanggo kelas serializable kita?"

"Ya. Yen kelas ngleksanakake Serializable utawa Externalizable , iku dianggep serializable."

"Iku solusi sampurna. Aku seneng."

"Aku seneng krungu. Nanging ana liyane ... Sampeyan kudu takon Profesor Hans babagan kabeh nuansa. Padha mesthi ana. Dheweke pengin menehi sampeyan maca."