Невозможно назначить getBytes () байтовому массиву - PullRequest
2 голосов
/ 16 февраля 2012

Я полностью в замешательстве .. Похоже, было бы простое решение

private Byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new Byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}

Выдает следующую ошибку:

incompatible types
    required: java.lang.Byte[]
    found: byte[]

Ответы [ 5 ]

4 голосов
/ 16 февраля 2012

getBytes() из String возвращает byte[], и вы пытаетесь повлиять на него Byte[].

byte - это примитив, тогда как Byte - это класс-оболочка (вроде какInteger и int).

Что вы можете сделать, это изменить:

private Byte[] arrayOfBytes = null;

на:

private byte[] arrayOfBytes = null;
2 голосов
/ 16 февраля 2012

Байт - это объект, а байт - это примитив.Как разница между Integer и int.

2 голосов
/ 16 февраля 2012

Так что попробуйте:

private byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}
1 голос
/ 16 февраля 2012
public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];// this line is useless
    arrayOfBytes = input.getBytes();
}
1 голос
/ 16 февраля 2012

getBytes () возвращает массив byte[].Вы присваиваете массиву Byte[].

Итак, это должно работать

private byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new Byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}

Класс Byte заключает в себе значение байта примитивного типаобъект.Объект типа Byte содержит одно поле, тип которого является байтом.

...