Java Constructor getAnnotatedReturnType()方法及示例
构造函数 类的 getAnnotatedReturnType() 方法用于返回一个AnnotatedType对象,该对象代表AnnotatedType,用于指定构造函数对象的返回类型。返回的AnnotatedType代表AnnotatedType本身的实现或其任何子接口,如AnnotatedArrayType、AnnotatedParameterizedType、AnnotatedTypeVariable、AnnotatedWildcardType。AnnotatedType表示任何类型的潜在注释使用,包括数组类型、参数化类型、类型变量或当前在Java虚拟机中运行的通配符类型。
语法
public AnnotatedType getAnnotatedReturnType()
参数: 此方法不接受任何东西。
返回值: 该方法返回一个 AnnotatedType的对象 ,代表该Executable所代表的方法或构造函数的返回类型。
下面的程序说明了getAnnotatedReturnType()方法:
程序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: DemoAnnotations: [@customAnnotatedType()]
程序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: ShapeAnnotations: [@ShapeProperties()]
参考文献: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#getAnnotatedReturnType()
