private static <V> List<V> deepCopyList(List<V> original) {
        final List<V> copy = new CopyOnWriteArrayList<>();

        original.stream()
            .map(DocumentUtil::deepCopyObject)
            .forEachOrdered(copy::add);

        return copy;
    }
Casts the specified object to a {@code List<Map<String, Object>>}.
<p>
Careful! This method does not cause any unchecked warnings, so it might
be unsafe to use.

@param obj  the object to cast
@return     the typed list
runtime-parent/runtime-config/src/main/java/com/speedment/runtime/config/util/DocumentUtil.java