docs: @SuppressWarnings("unchecked")
  	protected static <E> Class<? extends E> extractClassFrom(Collection<? extends E> collection) {
  		Class<? extends E> clazz = null;
  		for (final E elt : collection) {
  			clazz = (Class<? extends E>) ReflectionUtil.getCommonType(clazz, elt.getClass());
  		}
  		return clazz == null ? (Class<E>) Object.class : clazz;
  	}