В чем разница между коротким/байтом внутри параметра и внутри блока [дубликат]JAVA

Программисты JAVA общаются здесь
Anonymous
В чем разница между коротким/байтом внутри параметра и внутри блока [дубликат]

Сообщение Anonymous »


Возможный дубликат:

Ошибка Eclipse? Когда короткометражка не короткометражка?


В Java я могу назначить короткий или байт внутри такие блоки:

Код: Выделить всё

short s = 20000;
byte  b = 120;
Поскольку 20000 — короткое значение, а 120 — байтовое значение, если я попытаюсь попробовать:

Код: Выделить всё

short s = 67000;
byte  b = 128;
Я получу сообщение об ошибке, в котором говорится, что невозможно скомпилировать целое число в байтовое, где

Код: Выделить всё

byte b = (byte)12232;
даже не выдаст предупреждение о том, что значение может быть потеряно. При вызове функции я все равно вынужден ее привести:

Код: Выделить всё

void test(short s){}
test(1) //invalid
test((short)1) //valid
При возврате все снова в порядке.

Код: Выделить всё

short test(){
return 1; //valid
}
Почему компилятор иногда хочет узнать границы чисел (хотя бы из констант), хотя кажется, что он забывает об этом в другом месте?

Подробнее здесь: https://stackoverflow.com/questions/145 ... de-a-block

Вернуться в «JAVA»