2

我完全被难住了..似乎有一个简单的解决方案

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[]
4

5 回答 5

4

getBytes()from String 返回 abyte[]并且您试图将其影响到 a Byte[]

byte是原语,Byte而是包装类(有点像整数和整数)。

你可以做的是改变:

private Byte[] arrayOfBytes = null;

至 :

private byte[] arrayOfBytes = null;
于 2012-02-16T19:12:01.243 回答
2

所以试试:

private byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}
于 2012-02-16T19:12:09.053 回答
2

字节是一个对象,而字节是一个原语。就像 Integer 和 int 之间的区别一样。

于 2012-02-16T19:12:25.537 回答
1

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

所以,这应该工作

private byte[] arrayOfBytes = null;    

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

Byte 类将原始类型 byte 的值包装在一个对象中。Byte 类型的对象包含一个类型为 byte 的字段。

于 2012-02-16T19:14:05.207 回答
1
public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];// this line is useless
    arrayOfBytes = input.getBytes();
}
于 2012-02-16T19:16:35.240 回答