![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Elite
![]() |
![]() hi, ich bin gestern auf ein paar phänomene bei java draufgekommen:
mein programm besteht aus 3 klassen, eine (A) stellt im prinzip das GUI zur verfügung, die zweite (B) verwaltet über eine arraylist die objekte der dritten klasse (C). mein programm funkt super, bis ich auf speichern gehe. dann nehm ich einfach mein objekt der klasse B und speichere es über einen ObjectOutputStream in eine datei. auch nachher geht das programm noch, bis ich es beende. wenn ich nun neu starte und von der datei lade, ist das ursprüngliche objekt wieder vorhanden, dh mit den gespeicherten C-Objekten in der array-list. allerdings treten nun solche aktionen auf: in klasse A: public void actionPerformed (Action Event e) { // der code vorher idxElems = 0; database.search (searchItems); in klasse B (database ist vom typ B): public void search (String [] searchItems) { System.out.println (parent.idxElems); //rest der funktion parent.addToList(foundElements); } idxElems hab ich zum überprüfen, nachdem ich auf das problem draufgekommen bin public gemacht, es wird hier 2,3... ausgegeben, je nachdem, wieviel objekte auf die suche passen. idxElems wird nicht zurückgesetzt, sondern erhöht sich jedesmal beim ausführen. weiters hab ich das problem, dass ich eine awt.list habe, die laut debugger (über .getItems() anzeigen lassen) die richtigen einträge hat. die funktion addToList hängt mir diese an die liste dran. sobald ich allerdings aus der funktion ins hauptprogramm zurückgehe (sprich über return in search), ist die liste auf null. die liste ist bestandteil der klasse A. es treten noch einige ähnliche fehler auf, die ich mir ebenfalls nicht erklären kann wie gesagt, alles funktioniert super bis ich von einer datei lade. dann macht er diese faxen. ich hab also den verdacht, dass hier etwas nicht stimmt, allerdings ist das ganze trotzdem seltsam, da, wenn ich mir im debugger das geladene objekt ansehe, stimmt alles. ich benutze jbuilder 5, jdk1.3 |
![]() |
![]() |
![]() |
#2 | |
Hero
![]() |
![]() Zitat:
____________________________________
Bibel |
|
![]() |
![]() |
![]() |
#3 |
Elite
![]() |
![]() naja, allerdings funkt das ganze ganz normal, erst wenn ich lade, dann treten diese phänomene auf
sollt also nicht am garbage-collector liegen. |
![]() |
![]() |
![]() |
#4 |
Elite
![]() |
![]() ok, ich hab das problem gefunden.
ich hab in klasse B das frame der GUI-Klasse als parent gespeichert. beim laden hab ich dieses objekt allerdings nicht auf das neue GUI-Objekt aktualisiert, drum sind diese probleme aufgetreten. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|