2
votes

Comment l'annotation @Override en Java peut-elle vérifier la faute d'orthographe d'une méthode?

Je cherchais des informations sur l'annotation @Override dans Stackoverflow.

J'ai appris qu'elle remplace une méthode parente. Cependant, j'ai vu quelques commentaires disant que @Override peut en fait vérifier les fautes d'orthographe, et il est très utile de mettre l'annotation @override avant toutes les méthodes.

Je veux savoir comment @Override peut vérifier la faute d'orthographe d'un nom de méthode. (si j'ai bien compris)


0 commentaires

4 Réponses :


5
votes

Je veux remplacer cette méthode:

public class Bar extends Foo {
    @Override
    public void fooo() { ... }
}

Sans @Override , je peux toujours la remplacer:

public class Bar extends Foo {
    public void fooo() { ... }
}


0 commentaires

3
votes

Votre compréhension est erronée.

Premièrement: c'est @Override . Java est sensible à la casse, donc oui, la distinction est importante. Deuxièmement:

J'ai appris qu'elle remplace une méthode parente.

Non. Cela marque simplement le fait que la méthode à laquelle elle est appliquée le fait. Ce n'est pas parce que vous giflez @Overrides sur une méthode que cela ne fait pas par magie qu'elle écrase quelque chose. Cela entraînera des exceptions si ce n'est pas le cas.

Quant à la vérification des fautes d'orthographe: disons que vous voulez remplacer la méthode toString () .

@Override
public String toString(String value) {
  return value;
}

réussira, car toString existe comme ça dans une classe parent (Object).

Cependant, lorsque vous essayez:

@Override
public Double toString() {
  return new Double("5");
}


2 commentaires

quel bloc voulez-vous dire?


Une petite note, vous voudrez peut-être remplacer Exception par (Compiler) Error, car le compilateur ne lève pas d'exception, mais des erreurs



-1
votes

L'annotation java @Override s'assurera que tout changement de super-classe dans la signature de méthode entraînera un avertissement et vous devrez faire les changements nécessaires pour vous assurer que les classes fonctionnent comme prévu.

Il vaut mieux résoudre les problèmes potentiels au moment de la compilation qu'au moment de l'exécution. Utilisez donc toujours l'annotation java @Override chaque fois que vous essayez de remplacer une méthode de super-classe.


1 commentaires

"entraînera un avertissement", en fait, cela entraînera une exception lorsque vous essayez de compiler le code.



1
votes

La réponse est simple.

L'annotation @Override indique au compilateur que la méthode sous l'annotation de remplacement est remplacée, c'est-à-dire qu'une méthode avec la signature correspondante devrait être présente dans l'une des classes parentes dans la hiérarchie de la classe dans laquelle la méthode est écrite à le moment de l'écriture du code.

Il vérifie au moment du compilateur, dans la hiérarchie (c'est-à-dire, classe parent, classe grand parent, etc.) si la méthode actuelle que vous avez écrite a une méthode avec la même signature. Sinon, cela soulève l'erreur. Il ne s'agit pas de vérification orthographique. Il s'agit de la correspondance de signature, c'est-à-dire du type et de l'ordre des arguments ainsi que du nom de la méthode.


0 commentaires