Java getDeclaredAnnotations() Method



Description

The Java Package getDeclaredAnnotations() method returns all annotations that are directly present on this element. Unlike the other methods in this interface, this method ignores inherited annotations. (Returns an array of length zero if no annotations are directly present on this element.) The caller of this method is free to modify the returned array; it will have no effect on the arrays returned to other callers.

Declaration

Following is the declaration for java.lang.Package.getDeclaredAnnotations() method

public Annotation[] getDeclaredAnnotations()

Parameters

NA

Return Value

This method returns all annotations directly present on this element

Exception

NA

<

Getting All Annotations Example

The following example shows the usage of getDeclaredAnnotations() method. In this program, we've declared an annotation Demo as an interface with a method returing a string and a another method return int value. In PackageDemo class, we've applied that annotation Demo on a method example() with some values. In example() method, we've retrieved the class of the PackageDemo class using getClass() method.

Now using getMethod() example, we retrieved example method instance and then using getDeclaredAnnotations() method, we've retrieved array of annotations and printed them. In the main method, this example() method is called and result is printed.

package com.tutorialspoint;

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;

// declare a new annotation
@Retention(RetentionPolicy.RUNTIME)
@interface Demo {
   String str();
   int val();
}

public class PackageDemo {

   // set values for the annotation
   @Demo(str = "Demo Annotation", val = 100)
   
   // a method to call in the main
   public static void example() {
      PackageDemo ob = new PackageDemo();

      try {
         Class c = ob.getClass();

         // get the method example
         Method m = c.getMethod("example");

         // get the annotations
         Annotation[] annotation = m.getDeclaredAnnotations();

         // print the annotation
         for (int i = 0; i < annotation.length; i++) {
            System.out.println(annotation[i]);
         }
      } catch (NoSuchMethodException exc) {
         exc.printStackTrace();
      }
   }
   public static void main(String args[]) {
      example();
   }
}

Output

Let us compile and run the above program, this will produce the following result −

@com.tutorialspoint.Demo(str=Demo Annotation, val=100)

Getting Empty Array of Annotations Example

The following example shows the usage of getDeclaredAnnotations() method. In this program, we've declared an annotation Demo as an interface with a method returing a string and a another method return int value. In PackageDemo class, we've applied that annotation Demo on a method example() with some values. In example() method, we've retrieved the class of the PackageDemo class using getClass() method. We've created another method example1() where no annotation is present.

Now using getMethod() example, we retrieved example1 method instance and then using getDeclaredAnnotations() method, we've retrieved array of annotations and printed them. As no annotation is applied, array will be empty. In the main method, this example() method is called and result is printed.

package com.tutorialspoint;

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;

// declare a new annotation
@Retention(RetentionPolicy.RUNTIME)
@interface Demo {
   String str();
   int val();
}

public class PackageDemo {

   // set values for the annotation
   @Demo(str = "Demo Annotation", val = 100)
   
   // a method to call in the main
   public static void example() {
      PackageDemo ob = new PackageDemo();

      try {
         Class c = ob.getClass();

         // get the method example
         Method m = c.getMethod("example1");

         // get the annotations
         Annotation[] annotation = m.getDeclaredAnnotations();

         if(annotation.length != 0) {
            // print the annotation
            for (int i = 0; i < annotation.length; i++) {
               System.out.println(annotation[i]);
            }
         }else {
            System.out.println("No annotations present.");
         }
      } catch (NoSuchMethodException exc) {
         exc.printStackTrace();
      }
   }
   public static void main(String args[]) {
      example();
   }
   public static void example1() {
      // method with no annotations
   }
}

Output

Let us compile and run the above program, this will produce the following result −

No annotations present.
java_lang_package.htm
Advertisements