Версия, подходяща за принтиране
Кликни тук, за да видиш темата в оригиналният и вид
BG Development Форуми > Java > Conversion from int to byte


Публикувано от: korsarq 08-01-2018, 11:29
Не съм много добър на Java та ако може някой да ми обясни защо това става така:

int b = 5;
byte a = b;

защо тук гърми направо с грешка като очевидно 5 се събира в byte?


Публикувано от: PxL 08-01-2018, 11:36
Защото е downcast и иска да знае, че си наясно с това като го cast-неш експлицитно.

Публикувано от: korsarq 08-01-2018, 11:39
Разбирам b да беше 128 и да дава грешка добре ама сега да ми гърми е много глупаво по- добре да в некъв лорнинг

Публикувано от: korsarq 08-01-2018, 11:43
Ако имам някаква функция func(byte num) и ако искам да я извикам трябва да каствам func((byte)10);?Изглежда ми нелогично да каствам 10 към байт нз

Публикувано от: Stilgar 08-01-2018, 13:28
Компилаторът не се занимава да гледа каква е стойността на този инт. Теоретично би могло, но на практика няма голяма полза щото в практиката този int не идва от кода ми от някъде си примерно пратен е по сокет. Тогава няма как да знае дали ще е 5 или 500. Затова си има универсално правило, че като кастваш с потенциална загуба на данни се прави explicit.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)