Reflection Frage

Von: , Frage gestellt am Mi, 20. Jul 2005

Ich habe mir eine kleine Helper methode geschrieben, um jeweils zwei Objekte desselben Typs zu vergleichen:

static boolean compare(Object o1, Object o2) {
if (o1 == null && o2 == null) {
return true;
} else if ((o1 == null && o2 != null) || (o1 != null && o2 == null)) {
return false;
} else {
return o1.equals(o2);
}
}


bei der Zeile
return o1.equals(o2);
erwarte ich eigentlich, dass die equals Methode der Klassen, die ich der Methode übergeben habe, aufgerufen werden.
Es wird aber immer die Object.equals() Methode aufgerufen.

Wie kriege ich es per Reflection hin, dass die "richtige" equals Methode aufgerufen wird.
Sämtliche Typen, die ich dieser Methode übergebe, haben die equals Methode überschrieben...

2 Antworten zu dieser Frage

  1. Antwort von nach 4 Stunden 0 hilfreich
    Re: Reflection Frage

    Sämtliche Typen, die ich dieser Methode übergebe, haben die
    equals Methode überschrieben...
    Wirklich equals(Object) oder doch eher equals(DeineKlasse)?
    Mit der Art hier wird equals(Object) gerufen, falls vorhanden.

    • Antwort von nach 4 Tagen 0 hilfreich
      Re^2: Reflection Frage

      Sämtliche Typen, die ich dieser Methode übergebe, haben die
      equals Methode überschrieben...
      Wirklich equals(Object) oder doch eher equals(DeineKlasse)?
      Mit der Art hier wird equals(Object) gerufen, falls vorhanden.
      ja, du hast natürlich völlig recht. Ich hatte nicht überall equals(Object) überschrieben...
      Danke

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!