equals bringt false, und woanders true!

Romsl

Erfahrenes Mitglied
Hi,

ich versuch schon ne ganze Weile den Fehler hier herauszufinden. Und zwar bekomme ich wenn ich zwei Objekte mit equals überprüfe in der equals Methode bei

Code:
            if (this.getUnitKey().equals(article.getUnitKey()) &&
                this.getPrice() == article.getPrice() &&
                this.getInStock() == article.getInStock() &&
                this.getBundleCapacity() == article.getBundleCapacity() &&
                this.getBundleUnitKey().equals(article.getBundleUnitKey()) &&
                this.getDescriptions().containsAll(article.getDescriptions()) &&
                this.getDescriptions().size() == article.getDescriptions().size()) {

                return true;
            }

false und wenn ich über

Code:
System.out.println("TEST: " + savedArticle.getDescriptions().containsAll(article.getDescriptions()));

abfrage bekomme ich true (wohlgemerkt handelt es sich bei beiden Prüfungen um die gleichen zwei Objekte).

Weiß jemand warum? Braucht ihr noch mehr code?

Gruß

Romsl
 
Ich hab es glaube ich selbst gelöst. Das Problem war, dass ich dabei mit Hibernate arbeite und wenn ich ein Set lade bekomme ich dieses nicht in einer sortierten Reihenfolge. Jetzt habe ich mir einen Comparator geschrieben der das Set sofort sortiert. Danach funktionierte das ganze dann.

Aber warum ist mir schleierhaft. Vielleicht kann mir das evtl. nochmal einer erklären.

Danke
 
Zurück