When I call Set.class.isAssignableFrom(Iterable.class), it returns false.
Nevertheless, in the docs, java.util.Set is listed as a subinterface of java.lang.Iterable. Hence my confusion. You can even try it out in a single line of code:
System.out.println(Set.class.getName() + " is " + ((Set.class.isAssignableFrom(Iterable.class)) ? "" : "NOT " ) + "assignable from " + Iterable.class.getName());
it prints java.util.Set is NOT assignable from java.lang.Iterable.
Why is that?