docs: <T> void setFieldValue(final T object, final Field field, final Object value, final TimeUnit precision)
      throws IllegalArgumentException, IllegalAccessException {
      if (value == null) {
        return;
      }
      Class<?> fieldType = field.getType();
      try {
        if (!field.isAccessible()) {
          field.setAccessible(true);
        }
        if (fieldValueModified(fieldType, field, object, value, precision)
          || fieldValueForPrimitivesModified(fieldType, field, object, value)
          || fieldValueForPrimitiveWrappersModified(fieldType, field, object, value)) {
          return;
        }
        String msg = "Class '%s' field '%s' is from an unsupported type '%s'.";
        throw new InfluxDBMapperException(
          String.format(msg, object.getClass().getName(), field.getName(), field.getType()));
      } catch (ClassCastException e) {
        String msg = "Class '%s' field '%s' was defined with a different field type and caused a ClassCastException. "
          + "The correct type is '%s' (current field value: '%s').";
        throw new InfluxDBMapperException(
          String.format(msg, object.getClass().getName(), field.getName(), value.getClass().getName(), value));
      }
    }