The getAnnotatedReturnType() method of a Constructor class is used to return an AnnotatedType object which represents AnnotatedType to specify return type of Constructor Object. The returned AnnotatedType represents implementation of AnnotatedType itself or any of its sub-interfaces like AnnotatedArrayType, AnnotatedParameterizedType, AnnotatedTypeVariable, AnnotatedWildcardType. AnnotatedType represents the potentially annotated use of any type including an array type, a parameterized type, a type variable, or a wildcard type currently running in Java Virtual Machine.
Syntax:
public AnnotatedType getAnnotatedReturnType()
Parameters: This method accepts nothing.
Return value: This method returns an object of AnnotatedType representing the return type of the method or constructor represented by this Executable.
Below programs illustrate the getAnnotatedReturnType() method:
Program 1:
// Java program to demonstrate // Constructor.getAnnotatedReturnType() method   import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.reflect.AnnotatedType; import java.lang.reflect.Constructor; import java.util.Arrays;   public class GFG {       // main method     public static void main(String[] args)     {           try {             // create class object             Class demo = Demo. class ;               // get Constructor object array             // from the class object             Constructor[] cons                 = demo.getConstructors();               // get AnnotatedType for return type             AnnotatedType annotatedType                 = cons[ 0 ]                       .getAnnotatedReturnType();               System.out.println( "Type: "                                + annotatedType .getType( .getTypeName());               System.out.println( "Annotations: "                                + Arrays .toString( annotatedType .getAnnotations()));         }         catch (Exception e) {             e.printStackTrace();         }     } }   class Demo {       // AnnotatedType is @customAnnotatedType     public @customAnnotatedType Demo()     {         // do stuffs     } }   // Creating custom AnnotatedType @Target ({ ElementType.TYPE_USE }) @Retention (RetentionPolicy.RUNTIME) @interface customAnnotatedType { } |
Type: Demo Annotations: [@customAnnotatedType()]
Program 2:
// Java program to demonstrate // Constructor.getAnnotatedReturnType() method   import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.reflect.AnnotatedType; import java.lang.reflect.Constructor; import java.util.Arrays;   public class GFG {       // main method     public static void main(String[] args)     {           try {             // create class object             Class shape = Shape. class ;               // get Constructor object array             // from the class object             Constructor[] cons                 = shape.getConstructors();               // get AnnotatedType for return type             AnnotatedType annotatedType                 = cons[ 0 ]                       .getAnnotatedReturnType();               System.out.println(                 "Type: "                 + annotatedType                       .getType()                       .getTypeName());               System.out.println(                 "Annotations: "                 + Arrays.toString(                       annotatedType.getAnnotations()));         }         catch (Exception e) {             e.printStackTrace();         }     } }   class Shape {       // AnnotatedType is @customAnnotatedType     public @ShapeProperties Shape()     {         // do stuffs     } }   // Creating custom AnnotatedType @Target ({ ElementType.TYPE_USE }) @Retention (RetentionPolicy.RUNTIME) @interface ShapeProperties { } |
Type: Shape Annotations: [@ShapeProperties()]
References: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#getAnnotatedReturnType()