1. Les annotations
Les frameworks ont souvent besoin d'enrichir d'informations les classes afin de faciliter leur travail. Par exemple, pour convertir un objet en XML, il faut déclarer un mapping entre les attributs et la syntaxe XML à produire. Cette déclaration peut être effectuée en parallèle de la classe, dans un fichier de paramètre par exemple, mais cela présente le risque d'une désynchronisation entre le source java et le mapping XML. Parfois, des classes doivent être modifiées en parallèle, car elles présentent une cohérence globale. Par exemple, un BeanInfo est une classe qui décrit une autre classe. Cette dernière doit être conforme aux services proposés par la classe qu'il représente.
Pour permettre d'enrichir les classes, sans remettre en cause leurs sémantiques, Java 5+ propose d'utiliser des annotations. Il s'agit de modificateurs comme le sont