В Java нет непосредственной поддержки преобразования из int в Boolean. Но, это досадное неудобство можно легко обойти.
Как известно в двоичном представлении true соответствует 1, а false 0. Исходя из данного определения, можно вывести сопоставление int и Boolean, через логическое выражение.
1 2 |
int a= 1; boolean b = i != 0; |
Правда, здесь есть один побочный эффект. Любое целое число будет трактоваться как true. Но, как правило не критично.
Если же по каким-то причинам необходимо всё-таки обеспечить более строгое приведение типов, то можно использовать следующий подход.
1 2 3 4 5 6 7 |
private boolean intToBoolean(int input) { if((input==0)||(input==1)) { return input!=0; }else { throw new IllegalArgumentException("Входное значение может быть равно только 0 или 1 !"); } } |
ае успешное преобразование из int в Boolean будет возможно только если аргумент метода будет равен 0 или 1.
Пример ниже отработает нормально.
1 2 |
int a = 1; boolean b = intToBoolean(a); |
В этом примере мы получим исключение.
1 2 |
int a = 10; boolean b = intToBoolean(a); |
Добавить комментарий