Constructor getDeclaredAnnotations() method in Java with Examples (original) (raw)

Last Updated : 24 Apr, 2023

The getDeclaredAnnotations() method of java.lang.reflect.Constructor class is used to return annotations present on this Constructor element as an array of Annotation class objects. The getDeclaredAnnotations() method ignores inherited annotations on this constructor object.Returned array can contains no annotations means length of that array can be 0 if the constructor has no annotations. Syntax:

public Annotation[] getDeclaredAnnotations()

Parameters: This method accepts nothing. Return: This method returns array of annotations directly present on this element Below programs illustrate getDeclaredAnnotations() method: Program 1:

Java

import java.lang.annotation.Annotation;

import java.lang.reflect.Constructor;

public class GFG {

`` public static void main(String[] args)

`` {

`` Class classObj = shape. class ;

`` Constructor[] cons

`` = classObj.getConstructors();

`` Annotation[] annotations

`` = cons[ 0 ].getDeclaredAnnotations();

`` System.out.println("Annotation : "

`` + annotations);

`` }

`` @CustomAnnotation (createValues = "GFG")

`` public class shape {

`` @CustomAnnotation (createValues = "GFG")

`` public shape()

`` {

`` }

`` }

`` public @interface CustomAnnotation {

`` public String createValues();

`` }

`` }

Output:

Annotation : [Ljava.lang.annotation.Annotation;@4aa298b7

Program 2:

Java

import java.lang.annotation.Annotation;

import java.lang.reflect.Constructor;

public class GFG {

`` public static void main(String[] args)

`` {

`` Class classObj = String. class ;

`` Constructor[] cons

`` = classObj.getConstructors();

`` Annotation[] annotations

`` = cons[ 0 ].getDeclaredAnnotations();

`` System.out.println("Annotation length : "

`` + annotations.length);

`` }

}

Output:

Annotation length : 0

References: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#getDeclaredAnnotations()

example :

Java

package abc;

import java.lang.annotation.*;

import java.lang.reflect.*;

public class as {

`` @Retention (RetentionPolicy.RUNTIME)

`` @interface MyAnnotation {

`` String value();

`` }

`` public static class MyClass {

`` @MyAnnotation ( "constructor Annotation" )

`` public MyClass() {

`` }

`` }

`` public static void main(String[] args) throws Exception {

`` Constructor<?> constructor = MyClass. class .getDeclaredConstructor();

`` Annotation[] annotations = constructor.getDeclaredAnnotations();

`` for (Annotation annotation : annotations) {

`` System.out.println(annotation);

`` }

`` }

}

output :

@abc.as$MyAnnotation("constructor Annotation")