Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
public static MyClass clone( MyClass source ) throws CloneNotSupportedException
{
MyClass clone = ( MyClass ) source.clone();
return clone;
}
Wozu sollte das gut sein? Um dannHallo,
ich würde statt dem Konstruktor eine statische Factory-Methode verwenden:
Java:public static MyClass clone( MyClass source ) throws CloneNotSupportedException { MyClass clone = ( MyClass ) source.clone(); return clone; }
MyClass b = MyClass.clone(b);
MyClass b = a.clone();
Du hast recht. Siehe z.B. http://www.javapractices.com/topic/TopicAction.do?Id=12Es gibt ja schon einige vorgefertigte Klassen mit Copykonstructoren. (Denke ich, habe ich noch nie verwendet.)
z. B. Font, also unüblich ist es wohl eher nicht.
Das könnte schon sinnvoll sein, um dort z.B. das Exception-Handling einzubauen, die source-Instanz auf null zu prüfen, eventuell um bestimmte Felder der source-Instanz ebenfalls durch eine clone() Methode zu kopieren. Man kann sich auch vorstellen, einige Felder wieder auf default-Wert zu setzen. Das kommt immer auf die konkrete Implementierung an. Mit einer Factory-Metzode vermeidet man redundanten Code.Hi.
Wozu sollte das gut sein?
Wenn ich mich recht erinnere hat der Prof in der Vorlesung gesagt, man sollte möglichst immer einen Kopierkonstruktor schreiben. Wenn man dann noch eine clone() Methode will, besteht der Rumpf der Methode nur aus "return new MyClass(original);"