Ich bin also ziemlich neu in der Programmierung in der realen Welt (außerhalb von akademischen Projekten) und habe viele Beiträge gesehen, die besagen, dass die Verwendung instanceof
eine schlechte Sache ist, um festzustellen, welche Klasse ein bestimmtes Objekt ist.
Meine Situation ist, dass ich drei Klassen habe, eine Basisproduktklasse, eine, die sich darüber erstreckt, und eine andere, die sich darüber erstreckt. Diese sind alle in derselben Tabelle in einer Datenbank gespeichert, und ich habe Code, der die Methoden für jede verwenden muss, um Daten von ihnen abzurufen.
Was ist die beste Vorgehensweise, um diese Vorgehensweise zu umgehen? Ich habe einige Dinge über Polymorphismus gelesen, kann aber keine Beispiele finden, die das Problem beheben, das ich habe. Sie alle überschreiben normalerweise eine Methode, die für mich nicht funktioniert, da ich verschiedene Dinge aus den verschiedenen Objekten ziehen muss.
Gibt es einen besseren Weg, dies zu tun, oder bin ich bei der Verwendung instanceof
oder einer Art Reflexion festgefahren , um die für die Objekte spezifischen Felder zu erhalten?
getSpecifics()
, die auf jeder Methode unterschiedlich implementiert ist und bei der die für die Klasse spezifischen Daten zurückgegeben werden?
instanceof
falsch ist; Der Versuch, die Klasse eines Objekts zu finden, ist normalerweise das Problem. Nicht immer falsch, aber wahrscheinlich in Ihrem Fall. Wenn Sie uns mitteilen, was Sie erreichen möchten, können wir möglicherweise eine Lösung mit Polymorphismus vorschlagen.