模块  jdk.dynalink

Class TypeUtilities


  • public final class TypeUtilities
    extends Object
    用于处理Java类型的各种静态实用程序方法。
    • 方法详细信息

      • isMethodInvocationConvertible

        public static boolean isMethodInvocationConvertible​(<?> sourceType,
                                                            <?> targetType)
        根据JLS 5.3“方法调用转换”,确定是否可以使用方法调用转换将一种类型转换为另一种类型。 这基本上是子类型(参见isSubtype(Class, Class) )允许的所有转换以及装箱转换(JLS 5.1.7),可选地随后是加宽引用转换,以及拆箱转换(JLS 5.1.8),可选地随后加宽基元转换。
        参数
        sourceType - 要转换的类型(参数类型的调用站点类型,返回类型的方法类型)
        targetType - 要转换为的参数类型(参数类型的方法类型,返回类型的调用站点类型)
        结果
        如果源类型是可转换为目标类型的方法调用,则返回true。
      • isConvertibleWithoutLoss

        public static boolean isConvertibleWithoutLoss​(<?> sourceType,
                                                       <?> targetType)
        确定是否可以将类型转换为另一种类型而不会丢失任何精度。 作为特殊情况,void被认为仅可转换为void和ObjectnullDynamicLinkerFactory.setAutoConversionStrategy(MethodTypeConversionStrategy)设置的自定义值)。 有点不直观的是,我们认为任何东西都可以转换为void,即使转换为void会导致数据的最终丢失。 另一方面,转换为void本质上意味着该值没有意义并且应该被丢弃,因此不期望保留任何精度。
        参数
        sourceType - 源类型
        targetType - 目标类型
        结果
        如果可以进行无损转换,则为true
      • isSubtype

        public static boolean isSubtype​(<?> subType,
                                        <?> superType)
        根据JLS 4.10“Subtyping”确定一种类型是否是另一种类型的子类型。 注意:这不是严格或正确的子类型,因此对于相同类型也会返回true; 完全准确,它允许身份转换(JLS 5.1.1),扩展原始转换(JLS 5.1.2)和扩展参考转换(JLS 5.1.5)。
        参数
        subType - 假定的子类型
        superType - 假定的子类型超类型
        结果
        如果可以通过标识转换,扩展基元转换或将引用转换扩展为superType来转换subType,则为true。
      • getPrimitiveTypeByName

        public static <?> getPrimitiveTypeByName​(String name)
        给定基本类型的名称将返回表示它的类。 即,当使用“int”调用时,返回Integer.TYPE
        参数
        name - 基元类型的名称
        结果
        表示基本类型的类,如果名称不对应于基本类型,则返回null。
      • getPrimitiveType

        public static <?> getPrimitiveType​(<?> wrapperType)
        当传递表示基本类型的包装器的类时,返回表示相应基元类型的类。 即用Integer.class调用它将返回Integer.TYPE 如果传递的类不是基本类型的包装器,则返回null。
        参数
        wrapperType - 表示基本类型的包装器的类对象。
        结果
        表示基本类型的类对象,如果传递的类不是基本包装,则返回null。
      • getWrapperType

        public static <?> getWrapperType​(<?> primitiveType)
        传递表示基本类型的类时,返回表示相应包装类型的类。 即用int.class调用它将返回Integer.class 如果传递的类不是基本类型,则返回null。
        参数
        primitiveType - 表示基本类型的类对象
        结果
        表示包装器类型的类对象,如果传递的类不是基元,则返回null。
      • isWrapperType

        public static boolean isWrapperType​(<?> type)
        如果传递的类型是基本类型的包装器,则返回true。
        参数
        type - 检查的类型
        结果
        如果传递的类型是基本类型的包装器,则返回true。