因此,以下是涉及的2个代码段:
有问题的arraylist宣言:
static ArrayList<byte[]> photolist;
有问题的数组:
byte[] phofin = new byte[x];
转换(错误来源):
PhotoRetrieve.photolist.toArray(phofin);
它给我的错误信息说:
The method toArray(T[]) in the type ArrayList<byte[]> is not applicable for the arguments (byte[])
然而,在此java docs page上:
.toarray有一个重载,它接受一个数组作为参数。我已经尝试了很多东西来解决这个问题,并且没有成功,可能是因为我是Java的新手而不是最好的@故障排除。欢迎所有回复。谢谢!
更新: 在声明中,当我尝试将类型更改为byte时,我收到此错误:
语法错误,插入“Dimensions”以完成ReferenceType
答案 0 :(得分:1)
首先,您的ArrayList<byte[]>
是byte[]
的列表。 T
为byte[]
,因此toArray(T[])
为toArray(byte[][])
。例如。 byte[][] arrr = photolist.toArray(new byte[][0])
。
你想要做的事情有点复杂,因为你不能制作基元列表,所以你不能简单地使用ArrayList<byte> ... photolist.toArray(phofin)
,你需要使用ArrayList<Byte> ... photolist.toArray(new Byte[0])
然后迭代Byte[]
将值复制到phofin
。