*grummel*
Hi,
nur aus reiner Frustration: Ich habe einen ziemlich fetten Objektbaum, den ich ab und zu (zumindest teilweise) klonen muss. Ok, kein Problem, überschreibt man clone(), implementiert Cloneable, fügt ein bißchen eigene Logik hinzu - alles wird gut. Pustekuchen! Zur Laufzeit fliegt einem das ganze um die Ohren mit einem höchst aussagekräftigen "ClassFormatError: Code attributes in abstract method or interface in class file ..."-Error! Bißchen gegoogelt, das hier gefunden. Ok, Problem liegt in der clone()-Methode. Wenn die von einem Interface als
deklariert oder gar von einer abstrakten Klasse implementiert wird, passiert obige Katastrophe.
Ich bin begeistert.
Meine Fragen:
- Warum passiert das? Einfach ein Bug oder hat das einen Sinn, der sich mir noch nicht erschlossen hat?
- Und viel wichtiger: Was mache ich denn jetzt? Kopierkonstruktoren kommen nicht in Frage, ein Umbenennen der Methode wäre möglich, aber irgendwie blöd (ich will ja schönen Code abliefern
) ...
mpG
Tobias
*/grummel*
Hi,
nur aus reiner Frustration: Ich habe einen ziemlich fetten Objektbaum, den ich ab und zu (zumindest teilweise) klonen muss. Ok, kein Problem, überschreibt man clone(), implementiert Cloneable, fügt ein bißchen eigene Logik hinzu - alles wird gut. Pustekuchen! Zur Laufzeit fliegt einem das ganze um die Ohren mit einem höchst aussagekräftigen "ClassFormatError: Code attributes in abstract method or interface in class file ..."-Error! Bißchen gegoogelt, das hier gefunden. Ok, Problem liegt in der clone()-Methode. Wenn die von einem Interface als
Code:
public MeineKlasse clone() throws CloneNotSupportedException
Ich bin begeistert.
Meine Fragen:
- Warum passiert das? Einfach ein Bug oder hat das einen Sinn, der sich mir noch nicht erschlossen hat?
- Und viel wichtiger: Was mache ich denn jetzt? Kopierkonstruktoren kommen nicht in Frage, ein Umbenennen der Methode wäre möglich, aber irgendwie blöd (ich will ja schönen Code abliefern
mpG
Tobias
*/grummel*