Kloniranje objekta je način za kreiranje egzaktne kopije objekta. Za ovu svrhu koristi se metod klase Object clone().
java.lang.Cloneable interfejs mora biti implementiran od klase čiji klon objekta želimo da kreiramo. Ako ne implementiramo Cloneable interfejs, clone() metod generiše CloneNotSupportedException.
clone() metod je definisan u klasi Object. Sintaksa clone() metoda je sljedeća:
protected Object clone() throws CloneNotSupportedException
Zašto koristiti clone() metod ?
clone() metod oslobađa od dodatnog procesnog zadatka za kreiranje egzaktne kopije objekta. Ako to izvodimo koristeći ključnu riječ new, to će zahtijevati dosta procesiranja i zato koristimo kloniranje objekta.
Prednosti kloniranja objekta
Manje procesnih zadataka.
Primjer clone() metoda (Kloniranje objekta)
Pogledajmo jednostavan primjer kloniranja objekta
class Student18 implements Cloneable{ int rollno; String name; Student18(int rollno,String name){ this.rollno=rollno; this.name=name; } public Object clone()throws CloneNotSupportedException{ return super.clone(); } public static void main(String args[]){ try{ Student18 s1=new Student18(101,"Petar"); Student18 s2=(Student18)s1.clone(); System.out.println(s1.rollno+" "+s1.name); System.out.println(s2.rollno+" "+s2.name); }catch(CloneNotSupportedException c){} } } Ispis na ekranu: 101 Petar 101 Petar
Kao što se može vidjeti u ovom primjeru, obe referentne varijable imaju istu vrijednost. Stoga, clone() kopira vrijednosti jednog objekta u drugi. Tako nije potrebno pisati eksplicitni kod da kopiramo vrijednosti jednog objekta u drugi.
Ako kreiramo drugi objekt pomoću ključne riječi new i dodijelimo vrijednosti drugog objekta tom objektu, to će zahtijevati mnogo procesiranja na tom objektu. Tako da se oslobodimo dodatnog procesiranja koristimo clone() metod.