Imposer une methode Equals pour une recherche dans une List - Java - Programmation
Marsh Posté le 02-10-2006 à 13:33:57
equals dérive de Object, comment cette méthode peut elle être privée ?
Marsh Posté le 02-10-2006 à 13:37:52
Au fait je me suis mal exprimer
Ce que je fais c'est etendre ma classe mere comme suit:
Code :
|
Marsh Posté le 02-10-2006 à 13:38:15
Je veux uiliser cet equal la et pas celui de la classe mere comment faire?
Marsh Posté le 02-10-2006 à 13:40:51
si les éléments que tu compares sont bien de type C_ProjectPermissionItem, c'est ta méthode equals qui sera utilisée
Marsh Posté le 02-10-2006 à 13:47:02
Comment puis je caster une liste de type ProjectPermissionItem en C_ProjectPermissionItem ?
sachant que C_ProjectPermissionItem herite de ProjectPermissionItem?
Marsh Posté le 02-10-2006 à 13:49:29
tu peux pas
tu peux à la limite les wrapper dans C_ProjectPermissionItem, en ajoutant un constructeur
Code :
|
et le code qui va bien
Marsh Posté le 02-10-2006 à 13:50:32
List<C_ProjectPermissionItem> curPermissions = curProject
.getProjectPermissions();
Est ce que ca c'est bon?
Marsh Posté le 02-10-2006 à 14:08:21
Citation : public boolean equals(C_ProjectPermissionItem cppi) throws PSException { |
Citation : Je veux uiliser cet equal la et pas celui de la classe mere comment faire? |
tu redéfinis mal la méthode equals car elle doit prendre un Object en parametre :
Code :
|
Marsh Posté le 02-10-2006 à 14:33:06
Ca marche pas ...
Voila ce que je fais en detail:
Je commence par recuperer une liste ACL de mes droits par defaut:
Code :
|
Marsh Posté le 02-10-2006 à 14:34:13
ensuite je compare les droits du projet courant à ces doits par defaut:
Code :
|
Marsh Posté le 02-10-2006 à 14:34:53
le retour de lppi.containsAll(defaultPermissions) n'est pas bon car il semble pas prendre le bon equals
Marsh Posté le 02-10-2006 à 15:08:56
noldor a écrit : tu peux pas
|
Mias je le wrappe à quel niveau?
Une fois que j'ai recupérés ma liste de ProjectPermissionItem grace à getProjectPermissions() , je fais comment pour les transformer en liste de C_ProjectPermissionItem sans faire un truc bête...?
Sachant qu'à la base je veux simplement modifier la methose equals pour la rendre moins restrictive?
Marsh Posté le 02-10-2006 à 13:27:51
Bonjour,
J'ai 2 listes de droits ACL à comparer.
Je fais cela :
lppi.containsAll(defaultPermissions);
Le problème est que containsAll utilise la methose equals d'une classe (ProjectPermissionItem) que je ne peux overrider car privée. La méthode par défaut compare tous les champs un à un et aboutit à un resultat non pertinent. J'aimerais la overrider ou dire à à contains d'utiliser ma methode equals...
Comment faire (interface , heritage?)
Merci