2015-01-07 7 views
2

Я новичок в Java, и я читаю в книге Java поддерживает автоматическое продвижение и когда я назначил логическое значение int, он дает ошибку Теперь мой вопрос, так как Boolean является одним битом, а int - 4 байт, он должен получить повышение, но тогда почему это дает мне ошибку?Автоматическое продвижение булевских до int

+0

Логическое значение не является числовым значением - оно истинно или ложно (не 1 или 0). – BarrySW19

+0

Вы должны его закодировать. [Ответ] (http://stackoverflow.com/questions/3793650/convert-boolean-to-int-in-java) – Manu

+0

См. Http://stackoverflow.com/questions/3793650/convert-boolean-to-int- in-java – Raedwald

ответ

3

Boolean не является числовым. Продвижение распространяется только на совместимые типы.

+0

Почему Boolean не является числовым типом? Он хранит либо 1, либо 0, поэтому он должен быть числовым типом – user4380889

+0

Фактически он хранит либо 'true', либо' false'. Нигде в стандарте не говорится, что это '0' или' 1'. [См. Здесь] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5). Целое число можно преобразовать в логическое значение, но не наоборот. – lared

Смежные вопросы