无法将getBytes()分配给字节数组

时间:2012-02-16 19:10:25

标签: java arrays bytearray assign

我完全难过了......好像有一个简单的解决方案

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 个答案:

答案 0 :(得分:4)

String中的

getBytes()会返回byte[],您试图将其影响为Byte[]

byte是一个原语,而Byte是一个包装类(类似于Integer和int)。

你能做的就是改变:

private Byte[] arrayOfBytes = null;

到:

private byte[] arrayOfBytes = null;

答案 1 :(得分:2)

所以试试:

private byte[] arrayOfBytes = null;    

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

答案 2 :(得分:2)

Byte是一个Object,而byte是一个原语。就像Integer和int之间的区别一样。

答案 3 :(得分:1)

getBytes()返回byte[]数组。您正在分配Byte[]数组。

所以,这应该有用

private byte[] arrayOfBytes = null;    

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

Byte class在对象中包装基本类型byte的值。一个   类型为Byte的对象包含一个字段类型的字段。

答案 4 :(得分:1)

public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];// this line is useless
    arrayOfBytes = input.getBytes();
}