Clarification
amani
-
amani -
amani -
Bonjour,
j'ai rencontré une méthode dans une classe qui se termine par ; je me demande quel est l'intérêt de ce ; a il une influence sur les autres méthodes de la classe?
public abstract class Event
{
public boolean equals(Event event, Metadata data, Parameter param)
{
return event != null ? id.compareTo(event.toString()) == 0 : false;
};
}
j'ai rencontré une méthode dans une classe qui se termine par ; je me demande quel est l'intérêt de ce ; a il une influence sur les autres méthodes de la classe?
public abstract class Event
{
public boolean equals(Event event, Metadata data, Parameter param)
{
return event != null ? id.compareTo(event.toString()) == 0 : false;
};
}
1 réponse
Le point-virgule ne sert à rien ici, et même si le compilateur ne dit rien, je dirais que c'est une erreur de le mettre ici (ne serait-ce que pour le lecteur du code qui du coup se pose inutilement des questions sur son rôle !).
Remarque : la méthode equals ne prend normalement pas ce type de paramètres...
Autre remarque : il est maladroit de faire une méthode equals basée sur la méthode toString, surtout pour une classe abstraite, car rien ne garantit que les classes filles ne surchargeront pas la méthode toString rendant ainsi faux toute comparaison par effet de bord !
La confiance n'exclut pas le contrôle
Remarque : la méthode equals ne prend normalement pas ce type de paramètres...
@Override
public boolean equals(Object obj)
{
return (obj instanceof Event) // en particulier faux si obj==null
// && id.compareTo(((Event) obj).toString())==0; // bof
&& id.equals(((Event) obj).toString()); // mieux
}
Autre remarque : il est maladroit de faire une méthode equals basée sur la méthode toString, surtout pour une classe abstraite, car rien ne garantit que les classes filles ne surchargeront pas la méthode toString rendant ainsi faux toute comparaison par effet de bord !
La confiance n'exclut pas le contrôle
amani
Merci bcp(remarque la méthode n'est pas la mienne j'ai la pris d'un frameWork que j'ai cru fameux mais j'ai changé d'avis :p )