Trying to solve what should be a simple problem. Got a list of Bytes, want to convert it at the end of a function to an array of bytes.
final List<Byte> pdu = new ArrayList<Byte>(); .... return pdu.toArray(new byte[pdu.size()]);;
compiler doesn’t like syntax on my toArray. How to fix this?
Advertisement
Answer
The compiler doesn’t like it, because byte[] isn’t Byte[].
What you can do is use commons-lang‘s ArrayUtils.toPrimitive(wrapperCollection):
Byte[] bytes = pdu.toArray(new Byte[pdu.size()]); return ArrayUtils.toPrimitive(bytes);
If you can’t use commons-lang, simply loop through the array and fill another array of type byte[] with the values (they will be automatically unboxed)
If you can live with Byte[] instead of byte[] – leave it that way.