code: public static Object wrapValue(MetaProperty<?> metaProp, Class<?> beanType, Object value) {
          Object[] helpers = OPTIONALS.get(metaProp.propertyType());
          if (helpers != null) {
              try {
                  if (value != null) {
                      value = ((Method) helpers[0]).invoke(null, value);
                  } else {
                      value = helpers[1];
                  }
              } catch (Exception ex) {
                  throw new RuntimeException(ex);
              }
          }
          return value;
      }
docs: Wraps the value of a property if it is an optional.
  
  @param metaProp  the property to query, not null
  @param beanType  the type of the bean, not null
  @param value  the value to wrap, may be null
  @return the value of the property, with any optional wrapper added