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

324
28 марта 2018, 05:02

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

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;
Answer 1

Суть та же, но на мой взгляд покрасивее, хотя и менее понятно =) Имя метода взял по подобию Math.toIntExact(long)

byte toByteExact(int i){
    byte b = (byte)i;
    if (i != b)
        throw new ArithmeticException();
    else 
        return b;
}
READ ALSO
автоматическая отправка email в Android

автоматическая отправка email в Android

Видел методы, где запускается активити и где кнопку отправить приходится нажимать пользователю Есть ли методы, позволяющие автоматически...

320
Rest API - 404 Not Found при запросе @DELETE

Rest API - 404 Not Found при запросе @DELETE

При выполнении примера с Rest API c сайта Oracle, при запросе @DELETE выпадает ошибка сервера 404 Not Found

348
Почему процессор на Ubuntu грузится на 100%?

Почему процессор на Ubuntu грузится на 100%?

ЗдравствуйтеЗапускаю консольное приложение (Java) на Ubuntu через программу Putty командой nohup java -jar "App

355
Когда можно использовать scope runtime

Когда можно использовать scope runtime

В каких случаях может понадобиться добавлять такую область для зависимости? Что то не могу представить чтобы либа нужна была только в рантайме...

284