I
Ives
Gast
Hallo,
ich habe die Weiterentwicklung einer Anwendung übernommen. Diese nutzt das EMF-Framework. Im nachfolgenden Code sollen Werte aus einer vorhandenen Liste (EObjectContainmentEList) in eine neue geschrieben werden.
Merkwürdigerweise werden beim add der neuen Liste die Werte aus der alten gelöscht. Ist das ein Feature des Frameworks oder ein Bug? Beim Test mit einer ArrayList stehen die Werte wie beabsichtigt zum Schluss in beiden Listen. Aus der API bin ich auf Anhieb nicht schlau geworden. Den Typ der Liste kann ich leider nicht ändern, kann mir jemand einen Tipp geben?
Danke & Gruss
Ives
Und hier die Logausgabe:
ich habe die Weiterentwicklung einer Anwendung übernommen. Diese nutzt das EMF-Framework. Im nachfolgenden Code sollen Werte aus einer vorhandenen Liste (EObjectContainmentEList) in eine neue geschrieben werden.
Merkwürdigerweise werden beim add der neuen Liste die Werte aus der alten gelöscht. Ist das ein Feature des Frameworks oder ein Bug? Beim Test mit einer ArrayList stehen die Werte wie beabsichtigt zum Schluss in beiden Listen. Aus der API bin ich auf Anhieb nicht schlau geworden. Den Typ der Liste kann ich leider nicht ändern, kann mir jemand einen Tipp geben?
Danke & Gruss
Ives
Code:
// siehe Log: comp & l vom Typ EObjectContainmentEList
log.info("comp.getClass(): " +comp.getClass().getName() +", " +comp);
log.info("l.getClass(): " +l.getClass().getName() +", " +l);
log.info("comp.size() beginn: " +comp.size());
log.info("l.size() beginn: " +l.size());
for (int i = 0; i < comp.size(); i++) {
log.info("index i: " +i);
Object o = comp.get(i);
log.info("comp.size() vor add: " +comp.size());
log.info("l.size() vor add: " +l.size());
l.add(o);
log.info("comp.size() nach add: " +comp.size());
log.info("l.size() nach add: " +l.size());
}
Und hier die Logausgabe:
Code:
comp.getClass(): org.eclipse.emf.ecore.util.EObjectContainmentEList,
[@5c00016 (year: 2006, charge: 39),
@5ea4016 (year: 2007, charge: 66),
@5fe4016 (year: 2008, charge: 64)]
l.getClass(): org.eclipse.emf.ecore.util.EObjectContainmentEList, []
comp.size() beginn: 3
l.size() beginn: 0
index i: 0
comp.size() vor add: 3
l.size() vor add: 0
comp.size() nach add: 2 // ==> merkwürdig, oder?
l.size() nach add: 1