code: public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K, ? extends V> m) {
          return new UnmodifiableMap<>(m);
      }
docs: Returns an unmodifiable view of the specified map.  This method
  allows modules to provide users with "read-only" access to internal
  maps.  Query operations on the returned map "read through"
  to the specified map, and attempts to modify the returned
  map, whether direct or via its collection views, result in an
  <tt>UnsupportedOperationException</tt>.<p>
  
  The returned map will be serializable if the specified map
  is serializable.
  
  @param <K> the class of the map keys
  @param <V> the class of the map values
  @param  m the map for which an unmodifiable view is to be returned.
  @return an unmodifiable view of the specified map.