Chcę sklonować dany obiekt.Jak przekonać kompilator obiekt jest klonowalne (java)?
jeśli mogę to zrobić
public class Something{
Object o; //set in the constructor
public Something(Object o){
this.o = o;}
public Something clone() throws CloneNotSupportedException{
Something temp = super.clone();
if (o instanceof Cloneable) //important part
temp.o = o.clone(); //important part
else temp.o = o;
}
}
to nie zadziała, ponieważ posiadał o.clone() jest chronione.
jeśli mogę to zrobić zamiast
if (o instanceof Cloneable) //important part
temp.o = ((Cloneable)o).clone(); //important part
nie będzie działać albo dlatego Cloneable jest pusty interfejs.
więc w jaki sposób mogę przekonać kompilator, że można klonować?
@immibis, nie sądzę, że twój komentarz dodaje wiele wartości, szczerze mówiąc. – aioobe
Musisz sprawić, by twoja klasa implementowała 'Cloneable' i implementowała metodę' clone'. – Rishav
Z dokumentu: "Klasa implementuje interfejs Klonowalny, aby wskazać metodzie Object.clone(), że legalna dla tej metody jest utworzenie kopii instancji tej klasy w polu." – Rishav