public static void main(String[] args) {
    Reflections reflections = new Reflections("de.drlanka.euler");

    List<Class<? extends EulerProblem>> types = new ArrayList<>(reflections.getSubTypesOf(EulerProblem.class));
    Collections.sort(types, new Comparator<Class<?>>() {

      @Override
      public int compare(Class<?> o1, Class<?> o2) {
        if (o1 == null)
          return o2 == null ? 0 : -1;
        return (o2 == null) ? 1 : o1.getSimpleName().compareTo(o2.getSimpleName());
      }
    });

    for (Class<? extends EulerProblem> type : types)
      exerciseProblem(type);

  }