static Set allInterfacesImplementedBy(Class c) { if (c == null) null; new HashSet set; allInterfacesImplementedBy_find(c, set); ret set; } svoid allInterfacesImplementedBy_find(Class c, Set set) { if (c.isInterface() && !set.add(c)) ret; for (Class intf : c.getInterfaces()) allInterfacesImplementedBy_find(intf, set); c = c.getSuperclass(); if (c != null) allInterfacesImplementedBy_find(c); }