Класс TypeUtilities

public final class TypeUtilities
extends Object

Различные статические утилитарные методы для работы с типами Java.

Методы

Модификатор и тип Метод Описание
static Class<?> getPrimitiveType​(Class<?> wrapperType)

При передаче класса, представляющего оболочку для примитивного типа, возвращает класс, представляющий соответствующий примитивный тип.

static Class<?> getPrimitiveTypeByName​(String name)

Принимая имя примитивного типа, возвращает класс, который его представляет.

static Class<?> getWrapperType​(Class<?> primitiveType)

При передаче класса, представляющего примитивный тип, возвращает класс, представляющий соответствующий оберточный тип.

static boolean isConvertibleWithoutLoss​(Class<?> sourceType, Class<?> targetType)

Определяет, можно ли преобразовать один тип в другой без потери точности.

static boolean isMethodInvocationConvertible​(Class<?> sourceType, Class<?> targetType)

Определяет, можно ли преобразовать один тип в другой тип с помощью преобразования вызова метода, согласно JLS 5.3 «Преобразование вызова метода».

static boolean isSubtype​(Class<?> subType, Class<?> superType)

Определяет, является ли один тип подтипом другого типа, согласно JLS 4.10 «Подтипирование».

static boolean isWrapperType​(Class<?> type)

Возвращает true, если переданный тип является оболочкой для примитивного типа.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

isMethodInvocationConvertible

public static boolean isMethodInvocationConvertible(Class<?> sourceType,
                                                    Class<?> targetType)

Определяет, можно ли преобразовать один тип в другой тип с помощью преобразования вызова метода, согласно JLS 5.3 «Преобразование вызова метода». Это в основном все преобразования, разрешенные подтипированием (см. isSubtype(Class, Class)), а также преобразование обертывания (JLS 5.1.7), необязательно за которым следует расширяющее преобразование ссылок, и преобразование распаковки (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 приводит к конечной потере данных. С другой стороны, преобразование в 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 - предполагаемый супертип подтипа
Возвращает:
true, если subType может быть преобразован преобразованием тождественности, расширяющим преобразованием примитивных типов или расширяющим преобразованием ссылок в superType.

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, если переданный тип является оболочкой для примитивного типа.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.dynalink/jdk/dynalink/linker/support/TypeUtilities.html

Spec-Zone .ru
спецификации, руководства, описания, API