Spec-Zone.ru › OpenJDK 25

Класс 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, бесконечности или знакового нуля с плавающей точкой в другой тип с плавающей точкой считается точным.
Примечание по реализации:
Некоторые проверки точности описывают тест, который можно безопасно перенаправить к одному из существующих методов. Такие проверки также здесь отсутствуют (т. е. 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
Начиная с:
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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/runtime/ExactConversionsSupport.html

Spec-Zone.ru

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