PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bug in Java 5.0?


Senior Sanchez
2006-03-21, 23:18:09
Hi,

also das ist wirklich kurios und ich kanns mir nicht erklären, aber ich versuche das mal vereinfacht darzulegen.

Ich habe eine Klasse Formel, die als Klassenvariable eine Liste besitzt, die Formel-Objekte aufnehmen kann (is ne ArrayList<Formel>).


private static List<Formel> formelList = new ArrayList<Formel>();


Nun erzeuge ich in einer Methode der Klasse Formel eine neue ArrayList<Formel> die nicht auf formelList zugreift, und füge ein paar Elemente hinzu:


List<Formel> temp = new ArrayList<Formel>();

temp.add(new Formel());
temp.add(new Formel());


Das Kuriose ist jetzt, dass bei diesen add-Operationen die formelList genau diegleichen Elemente auch geadded bekommt! Die tauchen plötzlich in der Liste auf und nach diesen add-Operationen besitzen temp und formelList genau dieselben Elemente, obwohl ich gar keine add-Operation auf formelList ausgeführt habe.

Entferne ich jetzt aber das static aus der formelList-Definition, so passiert dies nicht mehr!

Kann mir das jemand erklären?

Pinoccio
2006-03-22, 00:32:18
hm, etwas mehr Code? Mir ist nicht ganz klar, was in welcher Klase steht.
Wirrer Tip: static=alle Instanzen teilen sich eine Variable.

mfg Sebastian

Coda
2006-03-22, 01:16:24
Kannst du einen minimalen Testfall entwerfen? Ich denke dann werden sich mehr Leute mit dem Problem beschäftigen.

Senior Sanchez
2006-03-22, 06:01:16
Kannst du einen minimalen Testfall entwerfen? Ich denke dann werden sich mehr Leute mit dem Problem beschäftigen.

Mache ich heute abend, okay? Habe jetzt im Mom leider keine Zeit.

Senior Sanchez
2006-03-22, 16:17:25
*gnarf* es war einfach schon zu spät.

Ich habe den Fehler gefunden gehabt, es war ne ganz dumme Zeile, somit ist der Thread passe und kann geschlossen/getrashed werden.