Spec-Zone.ru › OpenJDK 24

Класс ExactConversionsSupport

java.lang.Object
java.lang.runtime.ExactConversionsSupport
public final class ExactConversionsSupport extends Object
Тестируемое преобразование значения является точным, если оно дает результат без потери информации или без выброса исключения. В противном случае оно неточное. Некоторые преобразования всегда точные независимо от значения. Такие преобразования называются безусловно точными.

Например, преобразование из int в byte для значения 10 является точным, потому что результат, 10, совпадает с исходным значением. В противоположность этому, если переменная int i хранит значение 1000, то сужающее преобразование примитивного типа к byte даст результат -24. Произошла потеря информации: и величина, и знак результата отличаются от исходного значения. Таким образом, преобразование из int в byte для значения 1000 является неточным. Наконец, расширяющее преобразование примитивного типа из byte в int безусловно точно, потому что оно всегда будет успешным без потери информации о величине числового значения.

Методы в этом классе предоставляют поддержку во время выполнения для проверки точности тестируемых преобразований из примитивного типа в примитивный тип. Эти методы могут использоваться, например, реализациями компилятора Java для реализации проверок на instanceof и реализации обращений к шаблонам во время выполнения. Безусловно точные проверки преобразований не требуют соответствующего действия во время выполнения и по этой причине методы, соответствующие этим проверкам точности, здесь опущены.

Проверки преобразований во время выполнения проверяют, произойдет ли потеря информации, если будет применено тестируемое преобразование. В тех случаях, когда участвует тип плавающей точки, и значение тестируемого преобразования равно либо знаковому нулю, либо знаковой бесконечности, либо NaN, эти методы соответствуют следующему:

  • Преобразование плавающей точки отрицательного нуля в целочисленный тип считается неточным.
  • Преобразование плавающей точки NaN или бесконечности в целочисленный тип считается неточным.
  • Преобразование плавающей точки NaN или бесконечности или знакового нуля в другой тип плавающей точки считается точным.
Implementation Note:
Некоторые проверки точности описывают тест, который можно безопасно перенаправить через один из существующих методов. Они тоже опущены (например, byte в char можно перенаправить на isIntToCharExact(int), short в byte можно перенаправить на isIntToByteExact(int) и аналогично для short в char, char в byte и char в short соответствующим методам, которые принимают int).
См. Спецификацию языка Java:
5.7.1 Точные проверки преобразований
5.7.2 Безусловно точные проверки преобразований
15.20.2 Оператор instanceof
Since:
23

Краткое описание методов

Модификатор и тип Метод Описание
static boolean isDoubleToByteExact(double n)
Метод точности от double к byte
static boolean isDoubleToCharExact(double n)
Метод точности от double к char
static boolean isDoubleToFloatExact(double n)
Метод точности от double к float
static boolean isDoubleToIntExact(double n)
Метод точности от double к int
static boolean isDoubleToLongExact(double n)
Метод точности от double к long
static boolean isDoubleToShortExact(double n)
Метод точности от double к short
static boolean isFloatToByteExact(float n)
Метод точности от float к byte
static boolean isFloatToCharExact(float n)
Метод точности от float к char
static boolean isFloatToIntExact(float n)
Метод точности от float к int
static boolean isFloatToLongExact(float n)
Метод точности от float к long
static boolean isFloatToShortExact(float n)
Метод точности от float к short
static boolean isIntToByteExact(int n)
Метод точности от int к byte
static boolean isIntToCharExact(int n)
Метод точности от int к char
static boolean isIntToFloatExact(int n)
Метод точности от int к float
static boolean isIntToShortExact(int n)
Метод точности от int к short
static boolean isLongToByteExact(long n)
Метод точности от long к byte
static boolean isLongToCharExact(long n)
Метод точности от long к char
static boolean isLongToDoubleExact(long n)
Метод точности от long к double
static boolean isLongToFloatExact(long n)
Метод точности от long к float
static boolean isLongToIntExact(long n)
Метод точности от long к int
static boolean isLongToShortExact(long n)
Метод точности от long к short

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

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

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

isIntToByteExact

public static boolean isIntToByteExact(int n)
Метод точности преобразования из int в byte
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isIntToShortExact

public static boolean isIntToShortExact(int n)
Метод точности преобразования из int в short
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isIntToCharExact

public static boolean isIntToCharExact(int n)
Метод точности преобразования из int в char
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isIntToFloatExact

public static boolean isIntToFloatExact(int n)
Метод точности преобразования из int в float
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isLongToByteExact

public static boolean isLongToByteExact(long n)
Метод точности преобразования из long в byte
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isLongToShortExact

public static boolean isLongToShortExact(long n)
Метод точности преобразования из long в short
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isLongToCharExact

public static boolean isLongToCharExact(long n)
Метод точности преобразования из long в char
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isLongToIntExact

public static boolean isLongToIntExact(long n)
Метод точности преобразования из long в int
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isLongToFloatExact

public static boolean isLongToFloatExact(long n)
Метод точности преобразования из long в float
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isLongToDoubleExact

public static boolean isLongToDoubleExact(long n)
Метод точности преобразования из long в double
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isFloatToByteExact

public static boolean isFloatToByteExact(float n)
Метод точности преобразования из float в byte
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isFloatToShortExact

public static boolean isFloatToShortExact(float n)
Метод точности преобразования из float в short
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isFloatToCharExact

public static boolean isFloatToCharExact(float n)
Метод точности преобразования из float в char
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isFloatToIntExact

public static boolean isFloatToIntExact(float n)
Метод точности преобразования из float в int
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isFloatToLongExact

public static boolean isFloatToLongExact(float n)
Метод точности преобразования из float в long
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isDoubleToByteExact

public static boolean isDoubleToByteExact(double n)
Метод точности преобразования из double в byte
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isDoubleToShortExact

public static boolean isDoubleToShortExact(double n)
Метод точности преобразования из double в short
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isDoubleToCharExact

public static boolean isDoubleToCharExact(double n)
Метод точности преобразования из double в char
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isDoubleToIntExact

public static boolean isDoubleToIntExact(double n)
Метод точности преобразования из double в int
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isDoubleToLongExact

public static boolean isDoubleToLongExact(double n)
Метод точности преобразования из double в long
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
true, если и только если переданное значение может быть точно преобразовано в целевой тип

isDoubleToFloatExact

public static boolean isDoubleToFloatExact(double n)
Метод точности преобразования из double в float
Требования к реализации:
основан на понятии эквивалентности представления, определенном в спецификации класса Double.
Параметры:
n - значение
Возвращает:
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/java.base/java/lang/runtime/ExactConversionsSupport.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API