Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в одной из будущих версий.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова уведомления или прерывания, либо пока не истечет заданное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова уведомления или прерывания, либо пока не истечет заданное время.

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

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, 2026, 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.

Spec-Zone.ru

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