code: public static void setPropValue(final Object entity, final Method propSetMethod, Object propValue) {
          try {
              propSetMethod.invoke(entity, propValue == null ? N.defaultValueOf(propSetMethod.getParameterTypes()[0]) : propValue);
          } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
              propValue = N.convert(propValue, ParserUtil.getEntityInfo(entity.getClass()).getPropInfo(propSetMethod.getName()).type);
  
              try {
                  propSetMethod.invoke(entity, propValue);
              } catch (IllegalAccessException | InvocationTargetException e2) {
                  throw N.toRuntimeException(e);
              }
          }
      }
docs: Set the specified {@code propValue} to {@code entity} by the specified
  method {@code propSetMethod}. This method will try to convert
  {@code propValue} to appropriate type and set again if fails to set in
  the first time. The final value which is set to the property will be
  returned if property is set successfully finally. it could be the input
  {@code propValue} or converted property value, otherwise, exception will
  be threw if the property value is set unsuccessfully.
  
  @param entity
  MapEntity is not supported
  @param propSetMethod
  @param propValue