/** * Returns the primitive array given a wrapped primitive array. * <p> * Example: Returns <em>int[]</em> array given an <em>Integer[]</em> array * * @param array wrapped primitive array instance * @return primitive array instance * @throws IllegalArgumentException Thrown if any of the array values is * null */ public static Object getPrimitiveArray(Object[] array) { if (!isSupported(array.getClass())) { throw new IllegalArgumentException("Unsupported type " + array.getClass().getCanonicalName()); } Class arrayClass = array.getClass().getComponentType(); if (!arrayClass.isPrimitive() && (arrayClass == Double.class || arrayClass == Float.class || arrayClass == Long.class || arrayClass == Integer.class || arrayClass == Short.class || arrayClass == Character.class || arrayClass == Byte.class || arrayClass == Boolean.class)) { Class primitiveClass = getPrimitiveType(arrayClass); int arrayLength = array.length; Object primitiveArray = Array.newInstance(primitiveClass, arrayLength); for (int i = 0; i < arrayLength; i++) { Object obj = array[i]; Array.set(primitiveArray, i, obj); } return primitiveArray; } return array; }
/** * Returns the primitive array given a wrapped primitive array. * <p> * Example: Returns <em>int[]</em> array given an <em>Integer[]</em> array * * @param array wrapped primitive array instance * @return primitive array instance * @throws IllegalArgumentException Thrown if any of the array values is * null */ public static Object getPrimitiveArray(Object[] array) { if (!isSupported(array.getClass())) { throw new IllegalArgumentException("Unsupported type " + array.getClass().getCanonicalName()); } Class arrayClass = array.getClass().getComponentType(); if (!arrayClass.isPrimitive() && (arrayClass == Double.class || arrayClass == Float.class || arrayClass == Long.class || arrayClass == Integer.class || arrayClass == Short.class || arrayClass == Character.class || arrayClass == Byte.class || arrayClass == Boolean.class)) { Class primitiveClass = getPrimitiveType(arrayClass); int arrayLength = array.length; Object primitiveArray = Array.newInstance(primitiveClass, arrayLength); for (int i = 0; i < arrayLength; i++) { Object obj = array[i]; Array.set(primitiveArray, i, obj); } return primitiveArray; } return array; }