Referenzen in Java - Fehlerpotenzial !

Status
Nicht offen für weitere Antworten.
Hallo,
ich arbeite an einer Scheduling-Anwendung mit Threads und Vektoren. Habe mich soweit durchgekämpft und muss nun feststellen, dass die implementierten Algorithmen zwar arbeiten, die Lösungen aber allesamt ungültig werden.
Ich speichere Zeitpläne mit einzelnen Operationen (Objekt-Klasse Operation, selbst angelegt) als Vektoren ab. Die benötigten Operationen beziehe ich aus einer Datei, in der das zu berechnende Problem gespeichert ist. Es ergibt sich eine Sammlung an einzuplanenden Operationen (als Vektor angelegt). Ich erstelle in jeder Methode/Iteration eine Instanz des Ausgangs-Vektors und plane damit weiter. Das ist aber wohl nur eine Referenz und keine echte Kopie. Aus diesem Operations-Vektor nehme ich jeweils eine einzuplanende Operationen raus und plane sie mit verschiedenen zusätzlichen berechneten Werten (Startzeit, Endzeit etc.) ein. Danach wird die (Teil-)Lösung als Objekt-Klasse Solution gespeichert, eine andere geladen und weiter bearbeitet (ist ne Art Agentensystem).

So schön so gut - läuft auch alles ohne Probleme. Wenn ich nun aber bei weiterem Planungsverlauf eine komplette Lösung erhalten habe und die ausgebe, stimmen die Startzeiten etc. hinten und vorne nicht mehr. Ich weiss aber, dass der Algorithmus hinhaut!
Meine Befürchtung (fast schon Gewissheit):
Der eigentlich unveränderliche Operations-Vektor verändert sich durch Entnahme und Weiterverarbeitung von Operationen !!!!
Eingeplante Operationen (mit Referenz vom Orig-Operations-Vektor) scheinen mit vergebenen Startzeiten an den Orig-Vektor zurückgegeben/ -verwiesen und bei neuen Einplanungsschritten aufgegriffen zu werden.
Das ist schlecht !!!

Da ich bis dato viel (zuviel ;-) ) mit Vectoren hantiert habe, schwirrte schon des öfteren die Methode 'clone()' mit d. Interface 'Cloneable' durch mein Kalkül. Komm ich da noch drum herum?
Hat jemand Erfahrungen damit und kann mir evtl. eine Vorgehensweise empfehlen? Gibt es ein verständliches (deutsches?) Tutorial dafür? In allen Büchern, die ich so rumliegen habe, sind darüber nur fadenscheinige Äußerungen zu finden. Am detailliertesten ist noch "Thinking in Java" (Bruce Eckel). Trotzdem nicht richtig verständlich.
Ich vermute, dass ich, wenn clone() zum Einsatz kommen muss, alle Objekte (d.h. alle aber auch alle), die irgendwo verarbeitet werden, gecloned werden müssen. Hat jemand einen Tipp?

Vielen Dank schon jetzt,
chris
 

thE_29

Top Contributor
Die Frage ist ob er bei clone den Inhalt mitübernimmt, daher mach das mal ;)

Code:
Vector alter = new Vector();

//alter wird mit daten befüllt

Vector new = Vector(alter); //ist kopie mit Inhalt
 
B

bygones

Gast
egal ob mit new oder über clone... wenn man die referenzen der objekte ändert die die Vectoren halten hilft beides nichts...

daher - wenn clonen dann musst du auch die Elemente die der Vector hält clonen !!
 
das hiesse dann:
wenn eine Lösung (Solution) einen Vector mit Operationen (Klasse Operation) hat, sollte die Klasse Operation Cloneable sein. Eine Operation hat namen, Vorgaenger, nacholger, startzeit etc.; alle diese Werte muessen auch gecloned sein, richtig? na ich versuchs mal (ziehe aber besser vorher ein backup .... ;-) )
 
B

bygones

Gast
frenchCollection hat gesagt.:
das hiesse dann:
wenn eine Lösung (Solution) einen Vector mit Operationen (Klasse Operation) hat, sollte die Klasse Operation Cloneable sein. Eine Operation hat namen, Vorgaenger, nacholger, startzeit etc.; alle diese Werte muessen auch gecloned sein, richtig? na ich versuchs mal (ziehe aber besser vorher ein backup .... ;-) )
sie muss nicht nur cloneable sein - du musst auch sie explizit klonen !!
d.h.
Code:
Vector v2 = (Vector)v1.clone();
reicht nicht wenn die elemente des Vectors v1 Cloneable sind !
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
C Referenzen in Java Java Basics - Anfänger-Themen 11
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
M Referenzen zuweisen und wird gleichzeitig ausgeführt Java Basics - Anfänger-Themen 6
B JaxB - Unique Name updaten / Referenzen in XML Java Basics - Anfänger-Themen 0
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
B Datenbank: Entity mit vielen Referenzen? Ansatz so ok? Java Basics - Anfänger-Themen 8
scratchy1 Referenzen Java Basics - Anfänger-Themen 32
O Referenzen Java Basics - Anfänger-Themen 2
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
A Variablen Referenzen Java Basics - Anfänger-Themen 6
A GUI-Bedienelemente mit Zeiger/Referenzen-Array veralten Java Basics - Anfänger-Themen 4
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
F Referenzen zwischen Methoden Java Basics - Anfänger-Themen 5
T Klassen Referenzen auf Klassen / Objekte Java Basics - Anfänger-Themen 5
J OOP Ein Fahrrad - zwei Besitzer: Zwei Referenzen auf ein Objekt Java Basics - Anfänger-Themen 43
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
K Collections Auf Referenzen in ArrayList zugreifen? Java Basics - Anfänger-Themen 3
B ArrayList.clear - Daten in allen Referenzen weg Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
C OOP Referenzen-Problem Java Basics - Anfänger-Themen 3
N Referenzen Problem Java Basics - Anfänger-Themen 2
K Referenzen - 2ter Versuch Java Basics - Anfänger-Themen 17
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
J Referenzen vergleichen Java Basics - Anfänger-Themen 8
M Referenzen verschieben Java Basics - Anfänger-Themen 2
J Mehrere Referenzen auf ein Objekt Java Basics - Anfänger-Themen 6
M Referenzen Java Basics - Anfänger-Themen 11
G Netzwerk: RMI Objekt-Referenzen Java Basics - Anfänger-Themen 2
I clone() und Referenzen Java Basics - Anfänger-Themen 25
A Referenzen zu festen Werten machen? Java Basics - Anfänger-Themen 5
F Referenzen Java Basics - Anfänger-Themen 7
H Problem mit Events bzw. Referenzen Java Basics - Anfänger-Themen 4
M Zugriff auf Textfelder über Referenzen? Java Basics - Anfänger-Themen 3
F ArrayList! Pointer, Referenzen! Java Basics - Anfänger-Themen 4
K Verständnisfrage Collection, ArrayList und Referenzen Java Basics - Anfänger-Themen 4
H Begriff: Objekt enthält Referenzen Java Basics - Anfänger-Themen 3
J Referenzen Java Basics - Anfänger-Themen 5
P HashSet und Referenzen Java Basics - Anfänger-Themen 9
G Speicherung von Referenzen auf Instanzen Java Basics - Anfänger-Themen 5
T Referenzen. Java Basics - Anfänger-Themen 5
Z Referenzen in LinkedList Java Basics - Anfänger-Themen 3
G Instanzen und Referenzen Java Basics - Anfänger-Themen 5
G array auf null-referenzen überprüfen ! Java Basics - Anfänger-Themen 9
G Referenzen Java Basics - Anfänger-Themen 5
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben