juin
2006
Java 5.0 a apporté un grand nombre de nouveautés dans le langage. Si certaines se sont rapidement imposé, comme les Générics qui touchent un grand nombre de classe de l’API standard, d’autre sont resté assez « discrète » dans un premier temps : les Annotations.
Mais la sortie prochaine de Java SE 6 alias Mustang pourrait changer la donne, grâce à la JSR 269 : « Pluggable Annotation Processing API« . Cette dernière, qui vient de passer à l’état ‘Public Review‘, propose une API afin de permettre le traitement des annotations des fichiers sources lors de la compilation de ces derniers…
Cela permettra ainsi :
- De contrôler la bonne utilisation de ces annotations (en générant des messages d’erreur/warning/info à la compilation).
- De générer dynamiquement des fichiers *.class ou *.java.
- De générer dynamiquement des fichiers de ressources (configuration, XML, etc…).
Bref de quoi grandement simplifier le développement avec les Annotations, même si ce n’est pas vraiment une « nouveauté » puisque ce mécanisme était déjà possible avec Java 5.0 et son outils apt, mais il s’agissait plus d’un « test » que d’un véritable outil : son API n’était pas standard (et a d’ailleurs été grandement modifiée par la JSR 269), et cela nécessitait de compiler son code avec apt au lieu de javac et d’avoir la librairie tools.jar dans son CLASSPATH…
Des inconvénients qui auront disparu sous Java 6 puisque tout cela sera standard…
Pour un aperçu des possibilités que cela pourrait offrir, vous pouvez consulter mon tutoriel sur les Annotations, et en particulier la section concernant l’Annotation Processing Tool (APT)…
Tutoriels
Discussions
- jre 1.5, tomcat 6.0 et multi processeurs
- [REFLEXION] Connaitre toutes les classes qui implémentent une interface
- L'apparition du mot-clé const est-il prévu dans une version à venir du JDK?
- Classes, méthodes private
- Possibilité d'accéder au type générique en runtime
- Recuperation du nom des parametres
- [ fuite ] memoire
- Difference de performances Unix/Windows d'un programme?
- Définition exacte de @Override