[JAVA] Pourquoi vous devriez ajouter l'annotation Override lors du remplacement d'une méthode

Remplacer l'annotation

Il s'agit d'une annotation ajoutée dans Java 1.5. Il ne peut être utilisé que pour la déclaration de méthode pour indiquer qu'elle remplace une méthode de la classe parente. Le remplacement est possible sans l'annotation Remplacer. Alors pourquoi devrions-nous ajouter l'annotation Override? C'est cet article.

Pourquoi il est préférable d'ajouter l'annotation de remplacement

Supposons que vous ayez une classe parent comme celle-ci:

Parent.java


public class Parent {

    private String something;

    protected void setSomething(String something) {
        this.something = something;
    }
}

J'ai écrit le code suivant car j'avais besoin d'hériter de cette classe et de remplacer la méthode setSomething.

Child.java


public class Child extends Parent {

    protected void setSomething(Integer something) {
        System.out.println(something);
    }
}

J'ai fait une erreur dans le type de l'argument, mais je ne peux pas remarquer l'erreur car il se compile normalement. Je ne pense pas qu'il soit vrai que la version sera publiée sans le remarquer telle quelle, mais il est possible que vous deveniez définitivement accro au test en tant que bogue inattendu. Et voici la raison de l'ajout de l'annotation Override. Si vous ajoutez l'annotation Override, l'EDI la détectera comme indiqué ci-dessous, afin que vous puissiez remarquer l'erreur et résoudre le problème à l'avance (bien sûr, le compilateur détectera également la compilation avec la commande javac). キャプチャ.PNG

De plus, si vous utilisez l'EDI, en fonction des paramètres, il est possible d'émettre un avertissement s'il existe une méthode qui remplace la méthode de la classe parente même si l'annotation Remplacer n'est pas attachée. En d'autres termes, vous pouvez toujours utiliser l'annotation Remplacer pour détecter les remplacements involontaires.

Résumé des raisons pour lesquelles l'annotation de remplacement doit être ajoutée

  1. Vous pouvez éviter les erreurs accidentelles telles que l'impossibilité de le remplacer à l'avance et éviter les bogues inattendus.
  2. Je ne voulais pas le remplacer, mais quand j'ai regardé de près, j'ai réalisé que je le contournais, ce qui permet d'éviter des bogues inattendus.

c'est tout.

référence

Recommended Posts

Pourquoi vous devriez ajouter l'annotation Override lors du remplacement d'une méthode
Comment référencer une colonne lors du remplacement de la méthode de nom de colonne dans ActiveRecord
Lorsque vous souhaitez utiliser la méthode à l'extérieur
Si vous souhaitez simuler une méthode dans RSpec, vous devez utiliser la méthode allow pour mock et la méthode singleton.
Lorsque vous souhaitez ajouter une colonne de type chaîne avec une longueur limitée avec la commande `rails generate migration`
Quand refactoriser?
Élément 40: utiliser systématiquement l'annotation de remplacement
Avez-vous besoin d'une implémentation de Java compatible avec la mémoire?
Pourquoi vous avez besoin d'une adresse e-mail pour l'enregistrement des utilisateurs
Pourquoi vous avez besoin de setter / getter en premier lieu
[IOS] Ce que vous devez savoir avant de créer un widget
Pourquoi vous avez besoin d'attr_accessor et pourquoi vous ne l'avez pas (Merci à Rails): Mémorandum du didacticiel Rails - Chapitre 9
Pourquoi vous devriez ajouter l'annotation Override lors du remplacement d'une méthode
Un mémo lorsque vous souhaitez effacer la partie horaire de l'agenda