Класс 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 в byte |
static boolean |
isDoubleToCharExact |
Метод проверки точности преобразования из double в char |
static boolean |
isDoubleToFloatExact |
Метод проверки точности преобразования из double в float |
static boolean |
isDoubleToIntExact |
Метод проверки точности преобразования из double в int |
static boolean |
isDoubleToLongExact |
Метод проверки точности преобразования из double в long |
static boolean |
isDoubleToShortExact |
Метод проверки точности преобразования из double в short |
static boolean |
isFloatToByteExact |
Метод проверки точности преобразования из float в byte |
static boolean |
isFloatToCharExact |
Метод проверки точности преобразования из float в char |
static boolean |
isFloatToIntExact |
Метод проверки точности преобразования из float в int |
static boolean |
isFloatToLongExact |
Метод проверки точности преобразования из float в long |
static boolean |
isFloatToShortExact |
Метод проверки точности преобразования из float в short |
static boolean |
isIntToByteExact |
Метод проверки точности преобразования из int в byte |
static boolean |
isIntToCharExact |
Метод проверки точности преобразования из int в char |
static boolean |
isIntToFloatExact |
Метод проверки точности преобразования из int в float |
static boolean |
isIntToShortExact |
Метод проверки точности преобразования из int в short |
static boolean |
isLongToByteExact |
Метод проверки точности преобразования из long в byte |
static boolean |
isLongToCharExact |
Метод проверки точности преобразования из long в char |
static boolean |
isLongToDoubleExact |
Метод проверки точности преобразования из long в double |
static boolean |
isLongToFloatExact |
Метод проверки точности преобразования из long в float |
static boolean |
isLongToIntExact |
Метод проверки точности преобразования из long в int |
static boolean |
isLongToShortExact |
Метод проверки точности преобразования из long в short |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в одной из будущих версий. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова уведомления или прерывания, либо пока не истечет заданное время. |
final void |
wait |
Заставляет текущий поток ожидать, пока он не будет разбужен, обычно посредством вызова уведомления или прерывания, либо пока не истечет заданное время. |
Подробное описание методов
isIntToByteExact
public static boolean isIntToByteExact(int n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isIntToShortExact
public static boolean isIntToShortExact(int n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isIntToCharExact
public static boolean isIntToCharExact(int n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isIntToFloatExact
public static boolean isIntToFloatExact(int n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isLongToByteExact
public static boolean isLongToByteExact(long n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isLongToShortExact
public static boolean isLongToShortExact(long n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isLongToCharExact
public static boolean isLongToCharExact(long n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isLongToIntExact
public static boolean isLongToIntExact(long n)
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isLongToFloatExact
public static boolean isLongToFloatExact(long n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isLongToDoubleExact
public static boolean isLongToDoubleExact(long n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isFloatToByteExact
public static boolean isFloatToByteExact(float n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isFloatToShortExact
public static boolean isFloatToShortExact(float n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isFloatToCharExact
public static boolean isFloatToCharExact(float n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isFloatToIntExact
public static boolean isFloatToIntExact(float n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isFloatToLongExact
public static boolean isFloatToLongExact(float n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isDoubleToByteExact
public static boolean isDoubleToByteExact(double n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isDoubleToShortExact
public static boolean isDoubleToShortExact(double n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isDoubleToCharExact
public static boolean isDoubleToCharExact(double n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isDoubleToIntExact
public static boolean isDoubleToIntExact(double n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isDoubleToLongExact
public static boolean isDoubleToLongExact(double n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса Double.
- Параметры:
-
n— значение - Возвращает:
- true, если и только если переданное значение можно точно преобразовать в целевой тип
isDoubleToFloatExact
public static boolean isDoubleToFloatExact(double n)
- Требования к реализации:
- опирается на понятие эквивалентности представления, определенное в спецификации класса 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.