Класс 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) с последующим, необязательно, расширяющим преобразованием примитивных типов.- Parameters:
-
sourceType- тип, из которого производится преобразование (тип места вызова для типов параметров, тип метода для типов возвращаемых значений) -
targetType- тип параметра, в который производится преобразование (тип метода для типов параметров, тип места вызова для типов возвращаемых значений) - Returns:
- true, если тип источника преобразуем в тип назначения для вызова метода.
isConvertibleWithoutLoss
public static boolean isConvertibleWithoutLoss(Class<?> sourceType, Class<?> targetType)
Определяет, можно ли преобразовать тип в другой без потери точности. В качестве специального случая, void рассматривается как преобразуемый только в void и
Object (либо как null , либо как пользовательское значение, заданное в DynamicLinkerFactory.setAutoConversionStrategy(MethodTypeConversionStrategy)). Скорее неинтуитивно, мы считаем всё преобразуемым в void, хотя преобразование в void приводит к конечной потере данных. С другой стороны, преобразование в void по существу означает, что значение не представляет интереса и должно быть проигнорировано, поэтому нет ожиданий сохранения какой-либо точности.- Parameters:
-
sourceType- исходный тип -
targetType- целевой тип - Returns:
- 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).
- Parameters:
-
subType- предполагаемый подтип -
superType- предполагаемый супертип подтипа - Returns:
- true, если subType может быть преобразован с помощью преобразования тождества, расширяющего преобразования примитивных типов или расширяющего преобразования ссылок в superType.
getPrimitiveTypeByName
public static Class<?> getPrimitiveTypeByName(String name)
Принимая имя примитивного типа, возвращает класс, представляющий его. То есть, при вызове с "int", возвращает
Integer.TYPE.- Parameters:
-
name- имя примитивного типа - Returns:
- класс, представляющий примитивный тип, или null, если имя не соответствует примитивному типу.
getPrimitiveType
public static Class<?> getPrimitiveType(Class<?> wrapperType)
Если передан класс, представляющий обертку для примитивного типа, возвращает класс, представляющий соответствующий примитивный тип. Например, вызов с
Integer.class вернёт Integer.TYPE. Если передан класс, который не является оберткой для примитивного типа, возвращает null.- Parameters:
-
wrapperType- объект класса, представляющий обертку для примитивного типа. - Returns:
- объект класса, представляющий примитивный тип, или null, если переданный класс не является оберткой для примитива.
getWrapperType
public static Class<?> getWrapperType(Class<?> primitiveType)
Если передан класс, представляющий примитивный тип, возвращает класс, представляющий соответствующий обернутый тип. Например, вызов с
int.class вернёт Integer.class. Если передан класс, который не является примитивным типом, возвращает null.- Parameters:
-
primitiveType- объект класса, представляющий примитивный тип - Returns:
- объект класса, представляющий обернутый тип, или null, если переданный класс не является примитивным.
isWrapperType
public static boolean isWrapperType(Class<?> type)
Возвращает true, если переданный тип является оберткой для примитивного типа.
- Parameters:
-
type- проверяемый тип - Returns:
- true, если переданный тип является оберткой для примитивного типа.
© 1993, 2023, 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/21/docs/api/jdk.dynalink/jdk/dynalink/linker/support/TypeUtilities.html