Sul manuale che sto leggendo vengono riportati degli esempi che illustrano getAnnotation() e getAnnotations ma non degli esempi per getDeclaredAnnotations() e isAnnotationsPresent(). Sapreste riportarmi 2 esempi che mi aiutino a capire questi ulteriori metodi sulle annotazioni e a differenziarli dai precedenti?
Ciao e grazie
![]()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Esempi del libro per getAnnotation():
Esempi del libro per getAnnotations():codice:import java.lang.annotation.*; import java.lang.reflect.*; @Retention(RetentionPolicy.RUNTIME) @interface MyAnno { String str(); int val(); } class Meta { // myMeth now has two arguments. @MyAnno(str = "Two Parameters", val = 19) public static void myMeth(String str, int i) { Meta ob = new Meta(); try { Class<?> c = ob.getClass(); // Here, the parameter types are specified. Method m = c.getMethod("myMeth", String.class, int.class); MyAnno anno = m.getAnnotation(MyAnno.class); System.out.println(anno.str() + " " + anno.val()); } catch (NoSuchMethodException exc) { System.out.println("Method Not Found."); } } public static void main(String args[]) { myMeth("test", 10); } }
codice:// Show all annotations for a class and a method. import java.lang.annotation.*; import java.lang.reflect.*; @Retention(RetentionPolicy.RUNTIME) @interface MyAnno { String str(); int val(); } @Retention(RetentionPolicy.RUNTIME) @interface What { String description(); } @What(description = "An annotation test class") @MyAnno(str = "Meta2", val = 99) class Meta2 { @What(description = "An annotation test method") @MyAnno(str = "Testing", val = 100) public static void myMeth() { Meta2 ob = new Meta2(); try { Annotation annos[] = ob.getClass().getAnnotations(); // Display all annotations for Meta2. System.out.println("All annotations for Meta2:"); for(Annotation a : annos) System.out.println(a); System.out.println(); // Display all annotations for myMeth. Method m = ob.getClass( ).getMethod("myMeth"); annos = m.getAnnotations(); System.out.println("All annotations for myMeth:"); for(Annotation a : annos) System.out.println(a); } catch (NoSuchMethodException exc) { System.out.println("Method Not Found."); } } public static void main(String args[]) { myMeth(); } }

Rispondi quotando