code: public static <K, V> V getIfAbsentPut(Map<K, V> map, K key, Function0<? extends V> instanceBlock)
      {
          if (map instanceof MutableMap)
          {
              return ((MutableMap<K, V>) map).getIfAbsentPut(key, instanceBlock);
          }
          V result = map.get(key);
          if (MapIterate.isAbsent(result, map, key))
          {
              result = instanceBlock.value();
              map.put(key, result);
          }
          return result;
      }
docs: Get and return the value in the Map at the specified key, or if there is no value at the key, return the result
  of evaluating the specified {@link Function0}, and put that value in the map at the specified key.
  <p>
  This method handles the {@code null}-value-at-key case correctly.