Compiler-Fehler SupressWarning für clone()

Diskutiere SupressWarning für clone() im Java Basics - Anfänger-Themen Bereich.
L

liann

Hi, in einer super.clone() methode passiert etwas, was ich in der sub class vermeiden will. Deswegen überschreibe ich clone(). Ich rufe nicht super.clone() auf und der compiler zeigt mir an, ich solle doch super.clone() aufrufen. Wie lautet der @SupressWarining, um den compiler fehler auszuschalten oder unsichtbarzumachen?
 
H

httpdigest

Vielleicht zum Verständnis, was clone() eigentlich macht: Ein Aufruf von Object.clone(), also am oberen Ende deiner Klassenhierarchie, sorgt dafür, dass du eine neue Instanz derselben Klasse bekommst, auf der ursprünglich einmal clone() aufgerufen wurde - du bekommst also eine weitere Instanz des Laufzeittyps von `this`. clone() ist dafür gedacht, dass jede Überschreibung immer zuerst super.clone() aufruft, damit du auch eine Instanz von der eigentlichen Laufzeitklasse des Objektes bekommst. Das wäre nicht mehr der Fall, wenn du diese Kette unterbrichst. Das heisst, deine Klasse, in der du clone() überschreibst, und NICHT super.clone() aufrufst, wäre dann nicht mehr ableitbar durch andere Klassen, die eben auch geklont werden wollen.
Nichtdestotrotz ist aber deswegen und wegen ein paar anderen Punkten die Verwendung von clone() generell zu vermeiden.
Siehe: https://www.baeldung.com/java-copy-constructor#clone
 
B

BestGoalkeeper

Du kannst @SuppressWarnings("super") oder @SuppressWarnings("all") verwenden...
 
B

BestGoalkeeper

Du weißt gar nicht was ein Fehler und was eine Warnung ist :D ich würde empfehlen mal bei den richtigen Begrifflichkeiten anzufangen.
 
B

BestGoalkeeper

Habt ihr nicht mal geschrieben, man muss auch kritikfähig sein, wenn man etwas falsches schreibt und daraufhin korrigiert wird? Nichts anderes habe ich getan.

Natürlich ist es suboptimal, clone() ohne Funktionalität zu überschreiben... aber naja, genau das war seine Frage.
 
Thema: 

SupressWarning für clone()

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben