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();
}