Kloniranje objekta u Javi
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 sledeća:
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 reč new, to će zahtevati dosta procesiranja i zato koristimo kloniranje objekta.
Prednosti kloniranja objekta
Manje procesnih zadataka.
Primer clone() metoda (Kloniranje objekta)
Pogledajmo jednostavan primjer kloniranja objekta
Kao što se može videti u ovom primeru, obe referentne varijable imaju istu vrednost. Stoga, clone() kopira vrednosti jednog objekta u drugi. Tako nije potrebno pisati eksplicitni kod da kopiramo vrednosti jednog objekta u drugi.
Ako kreiramo drugi objekat pomoću ključne riječi new i dodelimo vrednosti drugog objekta tom objektu, to će zahtevati mnogo procesiranja na tom objektu. Tako da se oslobodimo dodatnog procesiranja koristimo clone() metod.
1 |
protected Object clone() throws CloneNotSupportedException |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 |
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 |