Objekt Datenverlust nach Methodenaufruf

chris1519

Mitglied
Hallo zusammen,

ich stehe vor einem seltsamen Problem. Nach folgendem Methoden Aufruf werden nicht alle Objekt Attribute korrekt zurückgegeben.

Java:
// Lade Daten in das DataModel
dataLoader.loadData(dataModel);
		
if (dataModel.getImplicitRatingsOfUser(8738).size()==0) System.err.println("User ist nicht enthalten"); 
else System.out.println("User ist enthalten");

In der Methode selbst teste ich genau so ob der user enhtalten ist.
Java:
@Override
public void loadData(DataModel dm) throws Exception {

     // Manipulation des DataModels dm
    ...

     if (dm.getImplicitRatingsOfUser(8738).size()==0) System.err.println("User ist nicht enthalten"); 
     else System.err.println("User ist enthalten"); 
}

Die Konsolenausgabe ergibt
User ist enthalten
User ist nicht enthalten

Warum gehen diese Daten verloren?
Die impliziten Ratings werden anhand der UserID in einem HashSet<Integer, Rating> gespeichert.

Viele Dank für Eure Hilfe
 
Zuletzt bearbeitet:
Das kann ich leider nicht machen, da es aus einem Uni internen Framework stammt.
Außerdem gibt es noch einige Vererbungen, sodass ich schon viele Klassen posten müsste.
Trotzdem vielleicht irgendeine Vermutung?
Ich kein Anfänger mehr und es ist absolut nicht das Rückgabe-Verhalten was ich erwarten würde.
 
Zuletzt bearbeitet:
Ja ne Vermutung habe ich: Du machst irgendwas falsch.

Ohne mehr Code kann man da aber nur wild spekulieren. In dem von dir geposteten Code lässt sich nichts erkennen. Wenn nicht irgendwo zwischendrin noch was mit dem Model passiert sollte die gleiche Ausgabe erscheinen.
 
Ich befürchte nicht, das ist ein wenig komplex.
Aber du hast mir schon geholfen. Ich wollte entweder hören, dass es wirklich nicht das Verhalten ist was man erwarten würde, oder das ich einen total naiven Gedankenfehler habe. Jetzt kann ich meinen betreuenden Professor etwas beruhigter fragen. Ich werde dann hier wieder antworten.
Danke schonmal
 
Deine Konsolenausgabe kann gar nicht durch das von dir gepostete Fragment entstehen. Wenn du eine Antwort willst, brauchen wir mehr Code.

Und warum @Override?

Rufst du als erstes dann loadData der Oberklasse auf? Oft ist das üblich??
 

Zurück
Oben