モジュール jdk.dynalink

クラスTypeUtilities


  • public final class TypeUtilities
    extends Object
    Java型を操作するためのさまざまな静的ユーティリティ・メソッド。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      static Class<?> getPrimitiveType​(クラス<?> wrapperType)
      プリミティブ型のラッパーを表すクラスを渡すと、対応するプリミティブ型を表すクラスを返します。
      static Class<?> getPrimitiveTypeByName​(String name)
      プリミティブ型の名前を指定すると、それを表すクラスが返されます。
      static Class<?> getWrapperType​(クラス<?> primitiveType)
      プリミティブ型を表すクラスが渡されると、対応するラッパー型を表すクラスを返します。
      static boolean isConvertibleWithoutLoss​(Class<?> sourceType, Class<?> targetType)
      精度を失うことなく型を別の型に変換できるかどうかを判定します。
      static boolean isMethodInvocationConvertible​(Class<?> sourceType, Class<?> targetType)
      JLS 5.3 "メソッド起動変換"のように、メソッドの呼び出し変換を使用して1つの型を別の型に変換できるかどうかを判定します。
      static boolean isSubtype​(Class<?> subType, Class<?> superType)
      JLS 4.10 "サブ型"のように、ある型が別の型のサブ型であるかどうかを判別します。
      static boolean isWrapperType​(クラス<?> type)
      渡された型がプリミティブ型のラッパーである場合はtrueを返します。
    • メソッドの詳細

      • isMethodInvocationConvertible

        public static boolean isMethodInvocationConvertible​(Class<?> sourceType,
                                                            Class<?> targetType)
        JLS 5.3 "メソッド起動変換"のように、メソッドの呼び出し変換を使用して1つの型を別の型に変換できるかどうかを判定します。 基本的には、(isSubtype(Class, Class)を参照してください)とboxing conversion (JLS 5.1.7)をサブ型化することで、すべてのコンバージョンを可能にします。オプションで拡大参照変換を行い、unboxing conversion (JLS 5.1.8)にオプションで拡張プリミティブ変換を続けます。
        パラメータ:
        sourceType - (パラメータ型のコール・サイト型、戻り型のメソッド型)から変換される型
        targetType - パラメータの型は(パラメータ型のメソッド型、戻り型のコール型)に変換されます。
        戻り値:
        ソース型がターゲット型に変換可能なメソッド呼び出しである場合はtrue。
      • isConvertibleWithoutLoss

        public static boolean isConvertibleWithoutLoss​(Class<?> sourceType,
                                                       Class<?> targetType)
        精度を失うことなく型を別の型に変換できるかどうかを判定します。 特殊なケースとして、voidはvoidとObject (nullまたはDynamicLinkerFactory.setAutoConversionStrategy(MethodTypeConversionStrategy)で設定されたカスタム値としてのいずれか)のみに変換可能と見なされます。 幾分直感的には、voidに変換すると最終的にデータが失われるにもかかわらず、voidに変換できるものがあるとみなします。 他方、ボイドへの変換は、本質的に値が無関係であり、廃棄されるべきであることを意味するので、精度を維持するという期待はありません。
        パラメータ:
        sourceType - ソース型
        targetType - ターゲット型
        戻り値:
        可逆変換が可能な場合はtrue
      • isSubtype

        public static boolean isSubtype​(Class<?> subType,
                                        Class<?> superType)
        JLS 4.10 "サブ型"のように、ある型が別の型のサブ型であるかどうかを判別します。 ノート: これは厳密または適切なサブ型ではないため、同じ型に対してもtrueが返されます。完全に正確であるために、それは恒等変換(JLS 5.1.1)、原始変換(JLS 5.1.2)および拡大基準変換(JLS 5.1.5)を広げることを可能にします。
        パラメータ:
        subType - 想定されるサブ型
        superType - 想定されるサブ型のスーパー型
        戻り値:
        subTypeがアイデンティティ変換、プリミティブ変換の拡張、またはsuperTypeへの参照変換の拡大によって変換できる場合はtrueです。
      • getPrimitiveTypeByName

        public static Class<?> getPrimitiveTypeByName​(String name)
        プリミティブ型の名前を指定すると、それを表すクラスが返されます。 つまり、"int"で呼び出されると、Integer.TYPEが返されます。
        パラメータ:
        name - プリミティブ型の名前
        戻り値:
        プリミティブ型を表すクラス。名前がプリミティブ型に対応しない場合はnull。
      • getPrimitiveType

        public static Class<?> getPrimitiveType​(Class<?> wrapperType)
        プリミティブ型のラッパーを表すクラスを渡すと、対応するプリミティブ型を表すクラスを返します。 つまり、Integer.classで呼び出すとInteger.TYPEが返されます。 プリミティブ型のラッパーではないクラスが渡された場合はnullを返します。
        パラメータ:
        wrapperType - 基本オブジェクト型のラッパーを表すクラス・オブジェクト。
        戻り値:
        プリミティブ型を表すクラス・オブジェクト。渡されたクラスがプリミティブ・ラッパーでない場合はnull。
      • getWrapperType

        public static Class<?> getWrapperType​(Class<?> primitiveType)
        プリミティブ型を表すクラスが渡されると、対応するラッパー型を表すクラスを返します。 つまり、int.classで呼び出すとInteger.classが返されます。 プリミティブ型ではないクラスが渡された場合はnullを返します。
        パラメータ:
        primitiveType - 基本型を表すクラス・オブジェクト
        戻り値:
        ラッパー型を表すクラス・オブジェクト。渡されたクラスがプリミティブでない場合はnull。
      • isWrapperType

        public static boolean isWrapperType​(Class<?> type)
        渡された型がプリミティブ型のラッパーである場合はtrueを返します。
        パラメータ:
        type - 検査された型
        戻り値:
        渡された型がプリミティブ型のラッパーである場合はtrue。