angenommen ich habe ein Interface A, das definiert, dass A Objekte als equal gelten sollen, wenn eine bestimmte Variable a equal ist.
dann habe ich ein weiteres Interface B (oder eine abstrakte Klasse B), die definiert, dass B Objekte gleich sein sollen, wenn deren Variable b gleich ist.
(A und B haben nichts miteinander zu tun)
okay, und nun habe ich eine Klasse C, die A und B implementiert/erweitert. nun entsteht natürlich das problem, wie die equals methode zu implementieren ist.
frage: bin ich hier schon an einem punkt, wo einfach das design/konzept falsch bzw fehleranfällig ist? also sollte man das einfach nicht so machen? das problem ist, dass A und B wie gesagt nicht wirklich etwas miteinander zu tun haben und ich - um bequem mit Listen von A und B arbeiten zu können - equals()/hashCode() überschrieben habe.
wenn ich nun aber das Interface A (oder B) dahingehend ändere, dass die equals Methode equalsA (oder equalsB) heißt, dann stört das vielleicht andere entwickler, die nur mit A (oder B) zu tun haben und nicht mit beiden Klassen.
ist es generell nicht ratsam, in Interfaces equals/hashCode neu zu definieren?
dann habe ich ein weiteres Interface B (oder eine abstrakte Klasse B), die definiert, dass B Objekte gleich sein sollen, wenn deren Variable b gleich ist.
(A und B haben nichts miteinander zu tun)
okay, und nun habe ich eine Klasse C, die A und B implementiert/erweitert. nun entsteht natürlich das problem, wie die equals methode zu implementieren ist.
frage: bin ich hier schon an einem punkt, wo einfach das design/konzept falsch bzw fehleranfällig ist? also sollte man das einfach nicht so machen? das problem ist, dass A und B wie gesagt nicht wirklich etwas miteinander zu tun haben und ich - um bequem mit Listen von A und B arbeiten zu können - equals()/hashCode() überschrieben habe.
wenn ich nun aber das Interface A (oder B) dahingehend ändere, dass die equals Methode equalsA (oder equalsB) heißt, dann stört das vielleicht andere entwickler, die nur mit A (oder B) zu tun haben und nicht mit beiden Klassen.
ist es generell nicht ratsam, in Interfaces equals/hashCode neu zu definieren?