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

Java 无法将getBytes()分配给字节数组,java,arrays,bytearray,assign,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[] fou

我完全被难住了。。似乎有一个简单的解决办法

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[]
getBytes()
from String返回一个
byte[]
,您正试图将其改为
byte[]

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

你能做的就是改变:

private Byte[] arrayOfBytes = null;
致:

因此,请尝试:

private byte[] arrayOfBytes = null;    

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

Byte是一个对象,而Byte是一个灵长类。与整数和整数之间的差异类似。

返回一个
字节[]
数组。您正在分配给
字节[]
数组

所以,这应该行得通

private byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new Byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}
在对象中包装基元类型byte的值。一 Byte类型的对象包含一个类型为Byte的字段


谢谢你的快速回复!但这不正是我写的,逐行吗?@marshmallow:nope将
Byte
更改为
Byte
。自动装箱只处理值的转换,而不是类型转换
private byte[] arrayOfBytes = null;    

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