Ответ Фернандо на 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);