public static <T> T newInstance(Class<T> type) {
        return newInstance(type, new Class<?>[0]);
    }
Iterates over all super classes of the given class (including the class itself)
and calls action.act() for these classes.
jgiven-core/src/main/java/com/tngtech/jgiven/impl/util/ReflectionUtil.java