| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Вопрос о приведении типов |
| Автор: maddoc 3.4.2006, 21:26 | ||
| Уважаемые Жава Гуру! Просветите новичка вот в чем
ошибка компиляции в стр 3 и 4, а в 7 и 8 все ОК. Почему? |
| Автор: powerOn 3.4.2006, 21:37 |
| в этих строках ты приводишь "больший" тип к "меньшему" short и char "больше" чем byte |
| Автор: w1nd 3.4.2006, 21:38 |
| Всё просто. Типы short и char вмещают в себя вдвое больше бит, чем byte. А когда ты объявляешь переменную, как final - компилятор знает, что она меняться больше не будет. Значения в строках №5 и №6 занимают заведомо меньше восьми бит. Чтобы они тоже не компилировались, следует их проинициализировать числами > 255. |
| Автор: maddoc 3.4.2006, 21:44 |
| 2 MoonCat вам спасибо, но я имел в виду то что ответил w1nd (и вам спасибо). все равно, как то не понятно, значение значением, но даже 0(типа Short 2 байта), а как же он это проглатывает? |
| Автор: powerOn 3.4.2006, 21:45 | ||
w1nd, немного поправлю : между -129 и 128 |
| Автор: LSD 3.4.2006, 23:09 | ||||
Для final переменных производится inline, если модифицировать код:
чтобы он компилировался, то вот что мы получим после компиляции:
как видишь код был оптимизирован, а final переменных не осталось вообще. |