public Object newInstance(final Object... override) throws InstantiationException, IllegalAccessException
   {
      if (clazz != null) {
         return clazz.newInstance();
      }
      else if (isCollection || isArray) {
         if (override.length > 0) {
            return ((Class<?>) override[0]).newInstance();
         }
         else if (collectionClass != null) {
            return collectionClass.newInstance();
         }
         else {
            return new ArrayList<Object>();
         }
      }
      else if (isMap) {
         return new HashMap<Object, Object>();
      }

      return field.getType().newInstance();
   }