private static void addInterfaces(@NotNull Class<?> clazz, @NotNull Collection<? super Class<?>> supers) {
      Class<?>[] interfaces = clazz.getInterfaces();
      Collections.addAll(supers, interfaces);
      for (Class<?> anInterface : interfaces) {
        Collections.addAll(supers, getAllSupers(anInterface));
      }
    }
private static void addInterfaces(@NotNull Class<?> clazz, @NotNull Collection<? super Class<?>> supers)