类 GenericTypeResolver


  • public final class GenericTypeResolver
    extends Object
    用于针对类型变量解析泛型类型的帮助程序类

    主要用于在框架中使用,解析方法参数类型,即使它们是泛型声明的

    • 方法详细资料

      • resolveReturnType

        public static Class<?> resolveReturnType​(@NotNull
                                                 @NotNull Method method,
                                                 @NotNull
                                                 @NotNull Class<?> clazz)
        确定给定方法的泛型返回类型的目标类型,其中形式类型变量在给定类上声明。
        参数:
        method - 方法
        clazz - 要解析类型变量的类
        返回:
        相应的泛型参数或返回类型
      • resolveReturnTypeArgument

        @Nullable
        public static @Nullable Class<?> resolveReturnTypeArgument​(@NotNull
                                                                   @NotNull Method method,
                                                                   Class<?> genericIfc)
        针对给定的目标方法解析给定泛型接口的单一类型参数,该方法假定返回给定接口或其实现。
        参数:
        method - 检查返回类型的目标方法
        genericIfc - 用于解析类型参数的泛型接口或超类
        返回:
        方法返回类型的解析参数类型,如果不可解析或单个参数的类型为 WildcardType,则为 null
      • resolveTypeArgument

        @Nullable
        public static @Nullable Class<?> resolveTypeArgument​(Class<?> clazz,
                                                             Class<?> genericIfc)
        针对假定实现泛型接口的给定目标类解析给定泛型接口的单一类型参数,并可能为其类型变量声明具体类型。
        参数:
        clazz - 要检查的目标类
        genericIfc - 用于解析类型参数的泛型接口或超类
        返回:
        参数的解析类型,如果无法解析,则为 null
      • resolveTypeArguments

        @Nullable
        public static @Nullable Class<?> @Nullable [] resolveTypeArguments​(Class<?> clazz,
                                                                           Class<?> genericIfc)
        针对给定的目标类解析给定泛型接口的类型参数,该目标类假定实现泛型接口,并可能为其类型变量声明具体类型。
        参数:
        clazz - 要检查的目标类
        genericIfc - 用于解析类型参数的泛型接口或超类
        返回:
        每个参数的解析类型,数组大小与实际类型参数的数量匹配,如果不可解析,则为 null
      • resolveType

        public static Type resolveType​(Type genericType,
                                       @Nullable
                                       @Nullable Class<?> contextClass)
        针对给定的上下文类解析给定的泛型类型,并尽可能替换类型变量
        参数:
        genericType - (可能)泛型类型
        contextClass - 目标类型的上下文类,例如目标类型出现在方法签名中的类(可以是 null
        返回:
        解析的类型(可能是给定的泛型类型)
      • resolveType

        public static Class<?> resolveType​(Type genericType,
                                           Map<TypeVariable,​Type> map)
        根据给定的类型变量映射解析指定的泛型类型
        参数:
        genericType - 要解析的泛型类型
        map - 要解析的类型变量映射
        返回:
        如果解析为类,则为类型,否则为 对象.class