Ответ 1
Ваш массив состоит из byte
примитивов, но вы пытаетесь вызвать метод для них.
Вам не нужно ничего делать явным образом для преобразования byte
в int
, просто:
int i=rno[0];
... так как это не уныло.
Обратите внимание, что стандартное поведение преобразования byte
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;
Это гарантирует компилятору, что вы знаете, что он унылый, так что вы не получите ошибку "Возможная потеря точности".