// OBJECT TYPES ARRAY
else if ("[Ljava.lang.String;".equals(typeName))
typeHandler = TYPE_HANDLER_ARRAY_STRING;
else
typeHandler = new TypeHandlerGenericArray(new TypeHandlerGeneric());
} else if (isCollection) {
String containedType = field.getGenericType().toString();
containedType = containedType.substring(containedType.lastIndexOf('<') + 1);
containedType = containedType.substring(0, containedType.length() - 1);
try {
generic = Class.forName(containedType);
} catch (ClassNotFoundException ex) {
throw new IllegalArgumentException("Class " + containedType + " not found", ex);
}
isPrimitive = isPrimitive(generic);
typeHandler = new TypeHandlerGenericCollection(new TypeHandlerGeneric(generic));
} else if (isPrimitive) {
Type type = field.getType();
if (type == Boolean.TYPE || "java.lang.Boolean".equals(typeName))
typeHandler = TYPE_HANDLER_BOOLEAN;