Maison > Java > javaDidacticiel > le corps du texte

Erreur Java : erreur de surcharge de méthode, comment y remédier

王林
Libérer: 2023-06-24 12:52:40
original
1868 Les gens l'ont consulté

Java est un langage de programmation orienté objet et la surcharge de méthodes est l'un des concepts importants. La surcharge de méthodes signifie que dans la même classe, il peut y avoir plusieurs méthodes avec le même nom de méthode mais des listes de paramètres différentes. Cependant, lors de l'écriture du code, vous pouvez rencontrer des erreurs de surcharge de méthode, ce qui entraînera l'échec de la compilation du code ou provoquera des erreurs d'exécution. Cet article explorera les erreurs courantes de surcharge des méthodes Java et comment les résoudre.

  1. Erreur de type de paramètre

La surcharge de méthode nécessite différentes listes de paramètres, mais cela ne fait pas seulement référence au nombre de paramètres, mais également au type et à l'ordre des paramètres. Si deux méthodes ont uniquement des types de paramètres différents, mais que le nombre et l’ordre des paramètres sont les mêmes, ils ne peuvent pas être définis en même temps. Par exemple :

public void foo(int a, int b) {}  
public void foo(double a, double b) {}
Copier après la connexion

Ce code définit deux méthodes avec le même nom de méthode, mais elles n'ont que des types de paramètres différents. Le compilateur Java ne peut pas déterminer quelle méthode doit être appelée car les types de paramètres transmis ne sont pas définis. Dans ce cas, le compilateur signalera une erreur « la méthode foo(int, int) est déjà définie dans la classe xxxxx ».

Pour résoudre ce problème, les développeurs doivent redéfinir le nom de la méthode ou modifier le type ou l'ordre des paramètres afin que la liste des paramètres soit différente. Par exemple, le code peut être refactorisé comme suit :

public void fooInt(int a, int b) {}
public void fooDouble(double a, double b) {}
Copier après la connexion
  1. Mauvais nombre de paramètres

Une autre erreur courante est que le nombre de paramètres de deux méthodes est différent, mais leurs types de paramètres sont les mêmes, ce qui n'est pas autorisé dans Java autorisé. Par exemple :

public void bar(int a) {}  
public void bar(int a, int b) {}
Copier après la connexion

Ce code définit deux méthodes avec le même nom de méthode, mais leur nombre de paramètres est différent. Ces deux méthodes évitent à nouveau les conflits car le compilateur Java choisira la bonne méthode en fonction du nombre de paramètres. Cependant, dans ce cas, si nous appelons la méthode bar en passant un seul paramètre, le compilateur Java ne peut pas dire quelle méthode doit être appelée. Dans ce cas, le compilateur signalera l'erreur "la méthode bar(int) est déjà définie dans la classe xxxxx".

Afin de résoudre ce problème, les développeurs doivent redéfinir le nom de la méthode ou ajouter un paramètre supplémentaire pour rendre les paramètres des deux méthodes différents. Par exemple, le code peut être refactorisé comme suit :

public void bar(int a) {}
public void bar(int a, int b, int c) {}
Copier après la connexion
  1. Différentes valeurs de retour

La surcharge de méthode Java nécessite le même nom de méthode et des listes de paramètres différentes, mais les valeurs de retour peuvent être différentes. Cependant, en pratique, si la valeur de retour d’une méthode portant le même nom est différente, le compilateur considérera cela comme une erreur.

Par exemple :

public int getResult(int a) {
  return a;
}
public double getResult(int a, int b) {
  return a * b;
}
Copier après la connexion

Ce code définit deux méthodes nommées "getResult", mais leurs valeurs de retour sont différentes. Étant donné que le compilateur Java ne peut pas faire la distinction entre les deux méthodes en fonction du type de valeur de retour, le compilateur signale l'erreur « la méthode getResult(int) est déjà définie dans la classe xxxx ».

Pour résoudre ce problème, les développeurs doivent rendre le type de valeur de retour des deux méthodes identique. Par exemple, le code peut être refactorisé comme suit :

public int getResult(int a) {
  return a;
}
public int getResult(int a, int b) {
  return a * b;
}
Copier après la connexion

Dans cet exemple, nous changeons le type de retour de la deuxième méthode de double à int, de sorte que le type de valeur de retour des deux méthodes soit le même, ce qui peut éliminer la compilation erreurs.

Pour résumer, la surcharge de méthodes est une technique très utile en programmation Java, qui peut améliorer la lisibilité et la maintenabilité du code. Cependant, dans la pratique, vous pouvez rencontrer des erreurs courantes de surcharge de méthode. En comprenant ces erreurs, nous pouvons optimiser et améliorer le code pour le rendre plus robuste et plus gérable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal