Страницы

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

воскресенье, 9 июня 2019 г.

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

Есть такой код
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;


Ответ

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

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

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