} else if (componentType.equals(Long.class)) {
return (ArrayWrapper<T>) new LongArrayWrapper((Long[]) array);
} else if (componentType.equals(Character.class)) {
return (ArrayWrapper<T>) new CharArrayWrapper((Character[]) array);
} else if (componentType.equals(Boolean.class)) {
return (ArrayWrapper<T>) new BooleanArrayWrapper((Boolean[]) array);
} else if (componentType.equals(Float.class)) {
return (ArrayWrapper<T>) new FloatArrayWrapper((Float[]) array);
} else if (componentType.equals(Double.class)) {
return (ArrayWrapper<T>) new DoubleArrayWrapper((Double[]) array);
} else {