guava/src/com/google/common/collect/MutableClassToInstanceMap.java
public static <B> MutableClassToInstanceMap<B> create(Map<Class<? extends B>, B> backingMap) {
    return new MutableClassToInstanceMap<B>(backingMap);
  }
public static <B> MutableClassToInstanceMap<B> create(Map<Class<? extends B>, B> backingMap) {
    return new MutableClassToInstanceMap<B>(backingMap);
  }
Returns a new {@code MutableClassToInstanceMap} instance backed by a given empty {@code
backingMap}. The caller surrenders control of the backing map, and thus should not allow any
direct references to it to remain accessible.