src/main/java/com/googlecode/objectify/ObjectifyFactory.java
@SuppressWarnings("unchecked")
	public <T extends Map<?, ?>> T constructMap(final Class<T> type) {
		if ((Class<?>)type == Map.class)
			return (T)new HashMap<>();
		else if ((Class<?>)type == SortedMap.class)
			return (T)new TreeMap<>();
		else
			return construct(type);
	}
@SuppressWarnings("unchecked")
	public <T extends Map<?, ?>> T constructMap(final Class<T> type) {
		if ((Class<?>)type == Map.class)
			return (T)new HashMap<>();
		else if ((Class<?>)type == SortedMap.class)
			return (T)new TreeMap<>();
		else
			return construct(type);
	}
<p>Construct a map of the specified type for use on a POJO field.  You can override this with Guice or whatnot.</p>

<p>The default is to call construct(Class), with one twist - if a Map or SortedMap List interface is presented,
Objectify will construct a HashMap or TreeMap (respectively).  If you override this method with
dependency injection and you use uninitialized fields of these interface types in your entity pojos, you will
need to bind these interfaces to concrete types.</p>