Класс TypeUtilities
java.lang.Object
jdk.dynalink.linker.support.TypeUtilities
public final class TypeUtilities extends Object
Различные статические вспомогательные методы для работы с типами Java.
- Since:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/jdk.dynalink/jdk/dynalink/linker/support/TypeUtilities.html