我完全难过了......好像有一个简单的解决方案
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[]
答案 0 :(得分:4)
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();
}