Primitive Array to Object[]

Uwe Schaefer

Wednesday, 27th of January 2010 at 05:24:33 PM
If ever you face the need of ‘boxing’ the elements of a primitive array into an array of Objects, this might be handy:
|
public static Object[] convertPrimitiveArray(final Object array) |
{ |
final int arrayLength = Array.getLength(array); |
final Object[] result = (Object[]) Array.newInstance(Object.class, arrayLength); |
for (int i = 0; i < arrayLength; i++) |
{ |
Array.set(result, i, Array.get(array, i)); |
} |
return result; |
} |
|
|
You can generify the method to have the wrapper return type (at the cost of unchecked cast).
public static T[] convertPrimitiveArray(final Object array, Class wrapperClass) {
final int arrayLength = Array.getLength(array);
final T[] result = (T[]) Array.newInstance(wrapperClass, arrayLength);
for (int i = 0; i < arrayLength; i++) {
Array.set(result, i, Array.get(array, i));
}
return result;
}
sure, but then it´d be public static < T > T[] convertPrimitiveArray(final Object array, Class< T > wrapperClass)
but it throws RTEs at you anyway