Как получить int из байта в J2ME? - PullRequest
0 голосов
/ 07 октября 2011

Я получил backgroundTransparency кнопки LWUIT, и она возвращает данные типа byte. Я хочу, чтобы эта переменная byte была преобразована в переменную int. Как это сделать?

Ответы [ 2 ]

3 голосов
/ 07 октября 2011

J2ME по-прежнему является Java:

int intVar = byteBar;
2 голосов
/ 09 октября 2011

Ответ Фернандо на 100% верен, но все еще немного вводит в заблуждение, например:

 byte b = (byte)0xff;
 int intVar = b;

 boolean thisIsFalse = intVar == 0xff;

Это может удивить большинство людей на первый взгляд, но логика на самом деле проста.0xff - отрицательное число для байта, но положительное число для целого (это также верно для Java SE).Решение состоит в том, чтобы изменить код сверху на что-то, что будет преобразовано в int "должным образом":

 int intVal = b & 0xff;
 boolean thisIsTrue = intVar == 0xff;

Это решит проблему, но вы все равно должны знать, что:

 boolean thisIsFalse = intVar == b;
 boolean thisIsTrue = intVar == (b & 0xff);
...