Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

Преобразование типов с проверкой

#java #преобразование_типов

                    
Есть такой код

int i = 300;
byte b = (byte)i;


Можно ли как-то его заставить генерировать исключение при обнаружении, что i не помещается
в байт? Или только так?

int i = 300;
if (i < Byte.MIN_VALUE || i > Byte.MAX_VALUE)
    throw new ArithmeticException();
byte b = (byte)i;

    


Ответы

Ответ 1



Суть та же, но на мой взгляд покрасивее, хотя и менее понятно =) Имя метода взял по подобию Math.toIntExact(long) byte toByteExact(int i){ byte b = (byte)i; if (i != b) throw new ArithmeticException(); else return b; }

Комментариев нет:

Отправить комментарий