Ваш массив состоит из byte
примитивов, но вы пытаетесь вызвать метод для них.
Вам не нужно ничего делать явным образом для преобразования byte
в int
, просто:
int i=rno[0];
... так как это не уныние.
Обратите внимание, что стандартное поведение преобразования byte
-to- int
заключается в сохранении знаказначение (помните, byte
является типом со знаком в Java).Например:
byte b1 = -100;
int i1 = b1;
System.out.println(i1); // -100
Если вы думаете о byte
как о беззнаковом (156), а не как о подписи (-100), чтобы получить эквивалентное значение в int
, вам нужнозамаскируйте биты знака:
byte b2 = -100; // Or `= (byte)156;`
int i2 = (b2 & 0xFF);
System.out.println(i2); // 156
Только для полноты № 1: Если вы хотите использовать различные методы Byte
по некоторым причинам (вам не нужно здесь ), вы можете использовать конвертацию в бокс :
Byte b = rno[0]; // Boxing conversion converts `byte` to `Byte`
int i = b.intValue();
или конструктор Byte
:
Byte b = new Byte(rno[0]);
int i = b.intValue();
Но, опять же, вам это здесь не нужно.
Просто для полноты # 2: Если бы было удручением (например, если вы пыталисьчтобы преобразовать int
в byte
), все, что вам нужно, - это приведение:
int i;
byte b;
i = 5;
b = (byte)i;
Это гарантирует компилятору, что вы знаете, что он унылый, поэтому вы не получите "Возможные потериточности "ошибка.