Класс TypeUtilities
java.lang.Object
jdk.dynalink.linker.support.TypeUtilities
public final class TypeUtilities extends Object
Различные статические методы для работы с типами Java.
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static Class<?> |
getPrimitiveType |
При передаче класса, представляющего оболочку для примитивного типа, возвращает класс, представляющий соответствующий примитивный тип. |
static Class<?> |
getPrimitiveTypeByName |
Принимая имя примитивного типа, возвращает класс, его представляющий. |
static Class<?> |
getWrapperType |
При передаче класса, представляющего примитивный тип, возвращает класс, представляющий соответствующий оболочечный тип. |
static boolean |
isConvertibleWithoutLoss |
Определяет, можно ли преобразовать один тип в другой без потери точности. |
static boolean |
isMethodInvocationConvertible |
Определяет, можно ли преобразовать один тип в другой тип с помощью преобразования вызова метода, в соответствии с JLS 5.3 "Преобразование вызова метода". |
static boolean |
isSubtype |
Определяет, является ли один тип подтипом другого типа, в соответствии с JLS 4.10 "Подтипизация". |
static boolean |
isWrapperType |
Возвращает true, если переданный тип является оболочкой для примитивного типа. |
Подробное описание методов
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, 2021, 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/17/docs/api/jdk.dynalink/jdk/dynalink/linker/support/TypeUtilities.html