Kısa bir serialization clone yazısı ile karşınızdayım değerli dostlar. Çoğumuz belki de hepimiz clone işlemi için Object sınıfında bulunan metodu kullanırız. Bu yazımda farklı bir yöntemi daha işlemek istedim. Input ve output sınıflarını yani IO kütüphanelerini kullanacağız. Hemen örneğe geçelim.

package designpattern.prototype;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;public class SerializationClone {public static void main(String[] args) {
try {SerialObject mc1 = new SerialObject();
mc1.color = “blue”;

byte[] buffer = new byte[1024];

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(mc1);
oos.flush();

buffer = baos.toByteArray();

oos.close();

ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
ObjectInputStream ois = new ObjectInputStream(bais);
SerialObject mc2 = (SerialObject) ois.readObject();

System.out.println(mc1);
System.out.println(mc2);

} catch (Exception e) {
e.printStackTrace();
}

}
}

class SerialObject implements Serializable {

private static final long serialVersionUID = 1L;

public String color = “”;
}

Önce var olan objemizi byte array haline çeviriyoruz. Okuma işleminden ve bu byte yığınını aldıktan sonra parametre olarak verip objeyi tekrar okuyoruz. Çıktı kısmına bakarsanız objelerin hafızada farklı yerlere işaret ettiğini göreceksiniz; ama içindeki blue değeri aynı.

Bol Java’ lı günler dileğiyle… 😀

Categories:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir