Java 8 : Les nouveautés

Utiliser les annotations répétées

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
La répétition de certaines annotations est autorisée. Leur récupération suit quasiment les mêmes règles que pour les annotations non répétées.

Transcription

Dans cette vidéo, nous allons aux annotations répétables. Les annotations répétables, qu'est-ce que c'est ? C'est tout simplement que, sur une classe, certaines annotations pourront être utilisées plusieurs fois. Je vais faire un exemple avec une classe qui est la classe personne. Le contenu de la classe personne ne m'intéresse pas spécialement. Ce qui m'intéresse c'est de l'annoter, cette classe personne. Et je vais l'annoter avec une annotation à moi, qui est donc une annotation qui consiste à dire qu'une classe code finalement, a été modifiée par un auteur. Ici donc je vais spécifier l'auteur qui a porté la modification sur la classe. Pour que cela compile, évidemment, il me faut avoir créé l'annotation elle-même; je vais venir donc créer dans un fichier qui porte le nom de cette annotation modifiée, je vais venir créer donc une annotation grâce à @interface pour modifier. Je vais présenter donc la propriété auteur, qui par défaut évidemment, est inconnue. Donc ça ça permet de ne pas spécifier donc d'auteur de la modification éventuellement. Donc on aura inconnu par défaut. Donc le code de l'annotation compile. Le code de la classe personne qui est annotée modifiée par Fabien compile aussi. Là où Java 7 s'arrête, c'est que vous ne pouvez pas utiliser une deuxième fois la même annotation, par exemple avec un deuxième auteur. Le compilateur vous dit ici que modifier n'est pas une annotation répétable. Donc pour la rendre répétable cette annotation, il faut tout simplement venir ici et annoncer que cette annotation est répétable. Rien de plus compliqué que ça. Alors sauf que en paramètre, il faut lui passer en quelque sorte le conteneur des annotations répétables, donc ici que je vais appeler modifier. Donc évidemment, c'est quelque chose qu'il faut que je crée de mon côté : donc @répétable actuellement lui pose un problème parce que il faut l'import; avec alt entrée j'obtiens donc l'import automatique pour Java langue annotations repetable; donc je préfère effectivement utiliser repetable plutôt que la totalité du nom de la classe. Mais maintenant, ce qu'il me dit ici, c'est que, modifier, il ne connaît pas. Alors il faut que je vienne créer maintenant le conteneur des annotations répétables modifiées, donc @interface, et ici, quelque chose qui me permette de récupérer l'ensemble des annotations qui sont de type modifiées, donc un tableau des annotations modifiées, et cette classe doit contenir la propriété value en fait, qui va permettre de récupérer le tableau des modifiées. Donc je sauvegarde tout ça. Ici, modifiées, on voit qu'elles ne posent plus de problème en termes de compilation, puisque on référence effectivement modifiée.classe. Et ici la classe personne ne pose en fait même plus de problème. Le petit point rouge a disparu et je peux utiliser plusieurs fois l'annotation modifiée sur la même classe. Passons maintenant à la récupération éventuelle de ces annotations répétées. Donc vous savez que pour récupérer les informations sur une annotation, vous allez passer par de l'API réflexion, c'est-à-dire qu'ici vous allez prendre la classe personne. Sur cette classe personne, vous allez peut être chercher à récupérer les annotations. Alors les annotations de la classe personne vont vous retourner automatiquement alt entrée, et NetBeans me propose de compléter le code, à savoir qu'ici je récupère un tableau des annotations. Donc ensuite sur ce tableau des annotations, ce que je vais faire c'est parcourir le tableau pour récupérer chaque annotation que j'appelle A. Ici donc je vais parcourir forEach en Java, donc on a un for pour chaque annotation que j'ai nommée annotation, je vais faire afficher l'annotation que j'ai récupérée. Alors ce qui est intéressant, c'est de voir la sortie en fait de cette réflexion. Je vais exécutet, alors pour l'instant eh bien apparemment rien. Qu'est-ce qui se passe? Eh bien tout simplement que ce soit l'annotation modifiée ou une annotation conteneur, des annotations répétées, aucune des deux n'est conservée Runtime. Vous savez que pour pouvoir conserver Runtime les informations de l'annotation, donc je suis obligé de venir ici, de méta annoter en quelque sorte l'annotation modifiée avec @retention, et de spécifier une politique de rétention, qui est ici donc Runtime. Alors évidemment ici, il me manque quelques imports. Retention alt entrée me permet donc de le retrouver dans Java lang.annotation.Retention, et vous appréciez aussi Alt entrée que RetentionPolicy se trouve aussi dans Java langue annotations. Donc ici il me dit qu'il y a un problème parce qu' en fait, je demande donc à placer ces annotations modifiées dans un conteneur, et l' annotation contenante n'a pas la possibilité de rétention au moins égale à celle de la notation modifiée. Donc en gros je suis obligé de venir répéter cette méta annotation au niveau de l'annotation conteneur. Il va me faire les imports qui vont bien. J'ai fait un copier coller . Donc ici j'annote l'annotation avec @retention RetentionPolicy Runtime. L'annotation modifiée, elle est annotée de la même façon. Et maintenant au niveau de la personne en fait, je vais récupérer les deux informations. Je vais exécuter mon code ici pour voir effectivement alors, sous une forme un petit peu barbare, apparaître le tableau des annotations, en l'occurrence la première annotation qu'il trouve, c'est bien l'annotation modifiées Pour une valeur de value, étant un tableau des annotations modifiées, que sont donc modifiées par Fabien et modifiées par Xavier. Donc ça c'est un petit exemple de ce qu'on peut faire avec les annotations répétées donc qui apparaissent en Java 8 .

Java 8 : Les nouveautés

Découvrez les nouveautés introduites par la version 8 de Java. Voyez les expressions lambda, les références de méthodes, les méthodes par défaut dans les interfaces, etc.

1h44 (21 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Spécial abonnés
Date de parution :17 août 2015

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !