clonen -tiefe Kopie

Status
Nicht offen für weitere Antworten.

---

Aktives Mitglied
Hallo,

es gibt zwar ähnliches im Netz, verstehs aber leider nicht.
Ich möchte eine tiefe Kopie (Objekte, die hinter den Verweisen stehen kopieren) , was mache ich fasch?

Code:
public class MapTableModel extends AbstractTableModel implements  Cloneable 
{

    public Object clone() 
    {
		 
        Object theClone = super.clone();	 
        theClone.clear(); //eclipse 
        for (Object o:this) //hier 
        theClone.add(o.clone());
        return theClone;
    }
..
}
schon mal vielen Dank!!
 
S

SlaterB

Gast
was heißt denn
//eclipse
und
//hier
?

theClone ist vom Typ Object, zumindest die Variable, wie willst du dann add() aufrufen?
mit solchen Versuchen klingt das eindeutig zu schwierig,
da baue lieber erstmal einen normalen Konstruktor, der die Daten kopiert,

eine vollständige Kopie ist am einfachsten mit
http://www.informatik-student.de/2006/12/10/deep-copy-von-java-objekten/
zu erreichen, aber bei einem TableModel strengstens nicht zu empfehlen,

im AbstractTableModel könnten Listener enthalten sein, vielleicht gar eine Referenz auf die JTable, auf das ganze JFrame usw.,
alles ganz schrecklich
 

---

Aktives Mitglied
Danke, ich schaus mir Moregn in Ruhe an..
in //eclipse und //hier wollte ich die Vorschläge/err von eclipse reinkopieren
?
 

---

Aktives Mitglied
Also das TableModel zu clonen war wohl total falsch.
Ich lese aus einem file in eine map und möchte die eingelesenen Daten kopieren. So dass ich die Kopie verändere das Original aber nicht. Muss ich dann die Properties clonen und die Daten einzeln einlesen?
Das funktioniert bei mir leider nicht. Ist die Vorgehensweise richtig?

//Erzeugen orig Wortliste
Code:
private void setWordList(Properties wl)
    {
        if(!getWordList().equals(wl))
        {
            getWordList().clear();
            getWordList().putAll(wl);
            getTableModel().refresh();
        }
}

Code:
    file = fc.getSelectedFile();
        try
        {
            InputStream in = new BufferedInputStream(new FileInputStream(file));
            Properties newWl = new Properties();
            newWl.load(in);
            in.close();
            setWordList(newWl);
        }
        catch(IOException ex)
        {
            handleException(ex);
        }
//clonen
Code:
Properties aktWl = newWl.clone()
 
S

SlaterB

Gast
> Das funktioniert bei mir leider nicht. Ist die Vorgehensweise richtig?

die Vorgehensweise in diesem Posting schonmal nicht ;) , WAS geht nicht?

ich persönlich bin zu clone() kein Experte, meine Devise: ausprobieren, zufrieden sein oder nicht,
sicher kann man sich bei unbekannten Methoden eh nie sein,

oben habe ich einen Link zur Serialisierung gepostet, das kann fast gar nicht schiefgehen,
auf eine Map-Datenstruktur nicht schlecht, bei Properties evtl. auch denkbar
 

---

Aktives Mitglied
Ich lese jetzt einfach Daten aus alten Properties und speichere dann ins Neue:
@SlaterB: Danke für den Link zu Deiner Website, das clonen kann ich bestimmt noch brauchen.
Hier war mein Problem, wie ich an die Daten aus MapTableModel komme.

Code:
sourceWl = new Properties();
    	 try {
    		 wUI2.getWordList().store(new      
                   FileOutputStream("out"),"out");
         } catch (IOException e) {
             e.printStackTrace();
         }
         try {
        	 sourceWl.load(new FileInputStream("out"));
         } catch (FileNotFoundException ex) {
        	 ex.printStackTrace();
         } catch (IOException ex) {
             ex.printStackTrace();
         }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
H Best Practice Klasse mit Array clonen Java Basics - Anfänger-Themen 8
S JTable clonen Java Basics - Anfänger-Themen 5
N Generic clonen => eclipse empfiehlt @SuppressWarnings("unchecked") Java Basics - Anfänger-Themen 2
S JLabel clonen/kopieren Java Basics - Anfänger-Themen 2
M Obejecte Clonen Java Basics - Anfänger-Themen 21
Screen Mouserobot clonen? Zeiger nur innerhalb eins Fensters? Java Basics - Anfänger-Themen 3
T JButton clonen? Java Basics - Anfänger-Themen 9
D Clonen eines Objectes Java Basics - Anfänger-Themen 10
M selbsterstelltes Objekt clonen? Java Basics - Anfänger-Themen 4
G Warum clonen? Java Basics - Anfänger-Themen 3
M Arrays clonen mit clone() scheint nicht zu funktionieren Java Basics - Anfänger-Themen 4
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
T Rekursiv Tiefe eines binären Suchbaums ermitteln Java Basics - Anfänger-Themen 22
X Kopierkonstruktor / tiefe Kopie Java Basics - Anfänger-Themen 3
V Tiefe Kopie Java Basics - Anfänger-Themen 3
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
Helgon Baumstruktur tiefe N erzeugen Java Basics - Anfänger-Themen 3
S Klassen Tiefe Kopie mittels Kopierkonstruktor Java Basics - Anfänger-Themen 6
N Tiefe im binären Suchbaum Java Basics - Anfänger-Themen 9
B Mehrdimensionales Array + Tiefe Java Basics - Anfänger-Themen 4
K Tiefe im Binärbaum Java Basics - Anfänger-Themen 2
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
I Methoden aufrufe in die Tiefe Java Basics - Anfänger-Themen 5
F Tiefe eines Baumes Java Basics - Anfänger-Themen 6
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
GianaSisters ArrayList-Kopie verändert Original Java Basics - Anfänger-Themen 5
P Kopie erstellen / addieren von Arrays Java Basics - Anfänger-Themen 5
D Tiefen Kopie Java Basics - Anfänger-Themen 36
N Kopie eines Objektes, die Objekt beeinflusst? Java Basics - Anfänger-Themen 6
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
S Array Kopie zwei in eindimensionales feld Java Basics - Anfänger-Themen 4
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
F 1:1 kopie möglichst effektiv und schnell Java Basics - Anfänger-Themen 7
M Kopie eines Objektes Java Basics - Anfänger-Themen 8
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
C Kopie einer ArrayList: Fehler im Detail? Java Basics - Anfänger-Themen 2
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
R Kopie erzeugen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben