public <S, T> MapUpdate<S, T> map(Function<K, S> keyMapper, Function<V, T> valueMapper) {
    return MapUpdate.<S, T>builder()
        .withType(type)
        .withKey(keyMapper.apply(key))
        .withValue(value == null ? null : valueMapper.apply(value))
        .withVersion(version)
        .build();
  }
public < S , T > MapUpdate < S , T > map ( Function < K , S > keyMapper , Function < V , T > valueMapper ) { return MapUpdate . < S , T > builder ( ) . withType ( type ) . withKey ( keyMapper . apply ( key ) ) . withValue ( value == null ? null : valueMapper . apply ( value ) ) . withVersion ( version ) . build ( ) ; }
Transforms this instance into an instance of different parameterized types.

@param keyMapper   transcoder for key type
@param valueMapper transcoder to value type
@param <S>         key type of returned instance
@param <T>         value type of returned instance
@return new instance