获取所有接口的设置
import java.lang.reflect.Array; import java.lang.reflect.Constructor; /** from 时 代 J a v a 公 众 号 - nowjava.com**/ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.net.URL; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.WeakHashMap; public class Main{ public static Set<Class<?>> getAllInterfacesAsSet(Class<?> clazz, ClassLoader classLoader) { if (clazz == null)/* from N o w J a v a . c o m*/ return null; if (clazz.isInterface() && isVisible(clazz, classLoader)) { Set<Class<?>> set = CollectionUtil.createHashSet(1); set.add(clazz); return set; } Set<Class<?>> interfaces = CollectionUtil.createLinkedHashSet(); while (clazz != null) { Class<?>[] ifcs = clazz.getInterfaces(); for (Class<?> ifc : ifcs) { interfaces.addAll(getAllInterfacesAsSet(ifc, classLoader)); } clazz = clazz.getSuperclass(); } return interfaces; } public static boolean isVisible(Class<?> clazz, ClassLoader classLoader) { if (classLoader == null) { return true; } try { Class<?> actualClas