Quel est le code le plus compact pour comparer trois objets pour l'égalité (sémantique) en utilisant Java? J'ai une règle de gestion selon laquelle les objets doivent être uniques: A est différent de B, A est différent de C et B est différent de C.Le moyen le plus compact de comparer trois objets pour l'égalité en utilisant Java?
Supposons que les objets sont tous de la même classe et ont été correctement remplacés Méthodes equals
et hashCode
. Un léger pli est que l'objet C pourrait être null
— si tel est le cas, alors A et B doivent être différents les uns des autres.
J'ai du code mais c'est un peu un homme de métier à mon goût.
Vous n'avez pas besoin du dernier terme; si A est égal à B et B égal à C, alors A doit être égal à C (ou l'implémentation de equals() est boguée). –
@Aaron: ce n'est pas 'and', c'est' ou'. Si un terme est faux, l'autre terme peut toujours être vrai: 'Auto.equals (Bike) ou Bike.equals (Car) ou Auto.equals (Car)'. Les deux premiers sont faux, le troisième est vrai: c'est nécessaire ;-) – Abel
Que faire si A! = B et C == null? Ma lecture de la question est que ceux-ci sont uniques, mais votre première réponse teste C d'abord et renvoie "non unique". – Nefrubyr