Ваш массив состоит из 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), в Java 8 есть _ 10_:
byte b2 = -100; // Or `= (byte)156;`
int = Byte.toUnsignedInt(b2);
System.out.println(i2); // 156
До Java 8, чтобы получить эквивалентное значение в 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
конструктор a >:
Byte b = new Byte(rno[0]);
int i = b.intValue();
Но опять же, здесь это вам не нужно.
Просто для полноты № 2: если это было понижающим (например, если вы пытались преобразовать int
в byte
), все, что вам нужно, это приведение:
int i;
byte b;
i = 5;
b = (byte)i;
Это гарантирует компилятору, что вы знаете, что это отрицательный результат, поэтому вы не получите ошибку «Возможная потеря точности».
person
T.J. Crowder
schedule
06.03.2012
.intValue()
. Первый - это необработанное значение байта, и просто присвойте его какint i = rno[0];
- person wuppi   schedule 06.03.2012