Also sagen wir, ich habe zwei fast identische Klassen, aber sie repräsentieren Objekte mit Hauptunterschieden. Im Moment sind diese Unterschiede nicht wirklich umgesetzt.Kann Java in der Lage sein, funktional identische Klassen zu unterscheiden?
So zum Beispiel, eine Klasse, wir nennen es MorningShiftWorker
, hat die exakt gleichen Methoden und Konstruktor wie ein anderer, den wir EveningShiftWorker
nennen werden. Objekte von diesen beiden sind in einer Liste ihres Supertyps ShiftWorker
gespeichert.
Logischerweise ist es sinnvoll, diese beiden Gruppen zu trennen, aber anstatt zusätzliche Variablen zur Mischung hinzuzufügen, dachte ich, dass ich nur Objekte in der ShiftWorker
Liste mit instanceof
überprüfen würde.
Meine Frage ist: Ist instanceof
intelligent genug, um Äpfel von Orangen zu unterscheiden? Diese beiden Klassen sind im Moment in allen außer dem Namen identisch. Ist das genug für instanceof
, um sie auseinander zu halten, oder gibt es einen anderen Weg, sollte ich darüber gehen?
Warum versuchst du es nicht einfach? – Manu
sie sind in zwei separaten Klassendateien definiert, keiner erbt von einem anderen, daher ist es keine Instanz eines anderen – user902383
Das hört sich so an, als ob es ernsthafte Modellierungsprobleme geben wird. Sie sollten fast nie "instanceof" verwenden müssen, wenn Ihr Domänenmodell ordnungsgemäß erstellt wurde. – chrylis