La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) 2009-2010 Projet SARDES, INRIA Rhône-Alpes Usage.

Présentations similaires


Présentation au sujet: "Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) 2009-2010 Projet SARDES, INRIA Rhône-Alpes Usage."— Transcription de la présentation:

1 Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) 2009-2010 Projet SARDES, INRIA Rhône-Alpes http://sardes.inrialpes.fr/~boyer Fabienne.Boyer@imag.fr Usage des Annotations Java pour Javanaise V2

2 2© F. Boyer, UJF Projet JAVANAISE Principes 3 types de définitions des annotations Définition de lannotation (ex: classe Version) Définition des classes ou des interfaces annotées (ex: class MyClass) Définition des classes traitant lannotation (ex: classe GetVersion)

3 3© F. Boyer, UJF Projet JAVANAISE Politiques de rétention Source Ces annotations sont censées être traitées avant/pendant la phase de compilation. Elles sont « perdues » après cette phase. Java fournit un support pour traiter ce type dannotations (APT, Annotation Processing Tool). Class Ces annotations sont présentes dans le fichier class, mais seront perdues lors de lexécution (non présentes ni manipulables dans la VM). Runtime Ces annotations sont présentes dans les classes chargées, donc accessibles durant lexécution.

4 4© F. Boyer, UJF Projet JAVANAISE Exemple de définition dune annotation (Fichier: Version.java) package annotation.example; ; import java.lang.annotation.*; // Is the annotation available at execution time @Retention(RetentionPolicy.RUNTIME) // Annotation associated with a type (Classe, interface) @Target(ElementType.TYPE) public @interface Version { String name(); }

5 5© F. Boyer, UJF Projet JAVANAISE Types déléments annotés @Target=TYPE classe, une interface ou enum @Target=FIELDattribut @Target=METHOD @Target=PARAMETER @Target=CONSTRUCTOR @Target=LOCAL_VARIABLE @Target=PACKAGE

6 6© F. Boyer, UJF Projet JAVANAISE Exemple de définition dune classe annotée (Fichier: MyClass.java) package annotation.example; // Specify the annotation on the class @Version ( name = "optimized" ) public class MyClass { … }

7 7© F. Boyer, UJF Projet JAVANAISE Exemple dutilisation dune annotation (Fichier: GetVersion.java) package annotation.examples; public class GetVersion { public static void PrintVersion(Class c) { // Is the annotation defined on the class? if( c.isAnnotationPresent(Version.class) ) { // Get a reference on the annotation version = c.getAnnotation(Version.class); // Get the annotation value System.out.print("La classe " + c.getName() + " a pour version " + version.name()); }...

8 8© F. Boyer, UJF Projet JAVANAISE Principe dutilisation dans Javanaise Le générateur de classes dinterposition jvnc interprête les annotations présentes dans les classes des objets Jvn On utilise donc des annotations dont la rétention est de type Class Ces annotations permettent de connaître le type des méthodes des objets Jvn (Read/Write)


Télécharger ppt "Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) 2009-2010 Projet SARDES, INRIA Rhône-Alpes Usage."

Présentations similaires


Annonces Google