code: public <T> T get(String key, Class<T> type) {
          return (T) ObjectUtil.convert(values.get(key), type);
      }
docs: Return the value for the given key converted to the passed type. If the value associated with the key is null, null is returned.
  If the stored value is different than the passed type, a conversion is attempted using {@link ObjectUtil#convert(Object, Class)}.
  Any conversion is done only on the return value. The stored value is unchanged.