Signature de méthode et valeur de retour différente ?
Bonjour
Sur la classe suivante j'ai une erreur de compil qui me dit que ma méthode name est dupliquée :
Citation:
public class Test {
public int name(String p) {
return 1;
}
public boolean name(String p) {
return true;
}
}
Je comprends bien, cela veut bien dire que si je veux la ma méthode name prenne le même param dans les 2 cas mais me retourne des types différents il me faudra changer le nom de la méthode .
Par ex , l'une s'appelera name, et l'autre nameWithOtherReturn ?
N'y a t'il pas d'autres solutions ?
Merci d'avance
Re: Signature de méthode et valeur de retour différente ?
Salut,
Citation:
Envoyé par elitost
Je comprends bien, cela veut bien dire que si je veux la ma méthode name prenne le même param dans les 2 cas mais me retourne des types différents il me faudra changer le nom de la méthode.
En effet car si cela était permis, le compilateur peut se retrouver dans plusieurs cas où il lui est impossible de déterminer quel méthode il doit utiliser...
Par exemple dans ce cas quel méthode doit-il appeller :
Code:
1 2
| Test test = new Test();
test.name("abc"); |
Ou en utilisant des Objects (ou l'autoboxing de Java 5.0) :
Code:
1 2
| Test test = new Test();
Object value = test.name("abc"); |
Donc c'est interdit (enfin presque car il est possible de spécialiser le type de retour lors de la redéfinition de méthode --> FAQ :Quelles sont les règles à respecter pour redéfinir/implémenter une méthode ?)
a++