12 - Les annotations Java

1 - Introduction au annotations Java

1 - 1 Introduction

Une annotation en Java,  est une construction de langage (introduite dans J2SE 1.5)  est un mécanisme permettant d'ajouter des métadonnées directement dans le code source.
Les annotations peuvent fournir des métadonnées pour les classes, les attributs et les méthodes Java. Syntaxiquement, les annotations peuvent être considérées comme un type particulier de modificateur et peuvent être utilisées partout où d'autres modificateurs (tels que public, static ou final) peuvent être utilisés.
Une des forces principales de l'ajout de cette fonctionnalité à Java était l'utilisation étendue des descripteurs XML pour ajouter des informations supplémentaires, des métadonnées, pour les classes Java. Des cadres comme EJB, JSF, Spring, Hibernate utilisaient fortement des descripteurs XML externes. Le problème de ces descripteurs externes était que ces fichiers sont hors de portée du compilateur Java et pour cette raison la vérification de type du compilateur ne pouvait pas être utilisée. Un petit bug d'erreur orthographique dans un énorme fichier descripteur XML est difficile à localiser et corriger. D'autre part, les annotations Java utilisent les fonctionnalités de vérification du type du compilateur Java pour que les erreurs d'orthographe dans les noms d'annotations soient prises en charge par le compilateur Java.

2 - Usage des annotations

Une annotation est  insérée  devant une classe, méthode ou attribut dans une ligne dédiée sous la forme @nom_annotation

2 - Les annotations standards

2 - 1 - L'annotation @Override ( reformuler une méthode Java )

L'annotation @Override est utilisée en Java pour reformuler une méthode dans le cas du polymorphisme Java. Si la formule en question ne redéfinit pas une autre dans la classe mère, le compilateur signale une erreur !

Exemple

class Parent {
	
	void aficher(){
		System.out.println("C'est la méthode de la classe Parent ");
	}
}
	
	class Enfant extends Parent{
		
		@Override
		void afficher(){
		System.out.println("C'est la méthode de la classe Enfant ");	
		}
	}

@Override  indique ici au compilateur que la classe Enfant utilise la méthode affcher() de la classe Parent mais avec modification : au lieu d'afficher le message : C'est la méthode de la classe Parent  elle doit afficher un autre qui est propre à la classe Enfant  : C'est la méthode de la classe Enfant.

Certainement vous n'avez pas pu comprendre réellement l'avantage et l'effet de cette annotation !

Comme nous l'avons déjà mentionné ci-dessus : Si la formule en question ne redéfinit pas une autre dans la classe mère, le compilateur signale une erreur !. Amusons nous par exemple faire une petite modification sur le nom de la formule en question :

Essayons à titre d'exemple de remplacer la méthode afficher() dans la classe Enfant par afiche();

Override-annotation-java

Vous voyez bien que le compilateur d'Eclipse vous signale une erreur  : The method affiche() of type Enfant must override or implement a supertype method  : c.a.d : La méthode affiche () de type Enfant doit remplacer ou implémenter une méthode supertype

Younes Derfoufi
CRMEF OUJDA

Leave a Reply