code: @SuppressWarnings("unchecked")
    protected <T> T readkv(String key, T defVal) {
      Object val = _lkv.get(key);
      if (! (val instanceof RawValue))
        return val != null ? (T) val : defVal;
      return ((RawValue) val).parse(defVal);
    }
docs: Retrieves the value associated with a given key. If value is not set of the key, a given default value is returned
  instead. Uses same parsing logic as {@link ModelMojoReader#readkv(String)}. If default value is not null it's type
  is used to assist the parser to determine the return type.
  @param key name of the key
  @param defVal default value
  @param <T> return type
  @return parsed value