} else if (componentType.equals(Integer.class)) {
return (ArrayWrapper<T>) new IntegerArrayWrapper((Integer[]) array);
} 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)) {