src/main/java/com/googlecode/objectify/ObjectifyFactory.java
@SuppressWarnings("unchecked")
	public <T extends Collection<?>> T constructCollection(final Class<T> type, final int size) {
		if ((Class<?>)type == List.class || (Class<?>)type == Collection.class)
			return (T)new ArrayList<>(size);
		else if ((Class<?>)type == Set.class)
			return (T)new HashSet<>((int)(size * 1.5));
		else if ((Class<?>)type == SortedSet.class)
			return (T)new TreeSet<>();
		else
			return construct(type);
	}
@SuppressWarnings("unchecked")
	public <T extends Collection<?>> T constructCollection(final Class<T> type, final int size) {
		if ((Class<?>)type == List.class || (Class<?>)type == Collection.class)
			return (T)new ArrayList<>(size);
		else if ((Class<?>)type == Set.class)
			return (T)new HashSet<>((int)(size * 1.5));
		else if ((Class<?>)type == SortedSet.class)
			return (T)new TreeSet<>();
		else
			return construct(type);
	}
<p>Construct a collection of the specified type and the specified size 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 Set, SortedSet, or List interface is presented,
Objectify will construct a HashSet, TreeSet, or ArrayList (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>