使用Class.getInterfaces,例如:
Class<?> c; // Your classfor(Class<?> i : c.getInterfaces()) { // test if i is your interface}另外,以下代码可能会有所帮助,它将为您提供一个包含所有超类和某个类的接口的集合:
public static Set<Class<?>> getInheritance(Class<?> in){ linkedHashSet<Class<?>> result = new linkedHashSet<Class<?>>(); result.add(in); getInheritance(in, result); return result;}private static void getInheritance(Class<?> in, Set<Class<?>> result){ Class<?> superclass = getSuperclass(in); if(superclass != null) { result.add(superclass); getInheritance(superclass, result); } getInterfaceInheritance(in, result);}private static void getInterfaceInheritance(Class<?> in, Set<Class<?>> result){ for(Class<?> c : in.getInterfaces()) { result.add(c); getInterfaceInheritance(c, result); }}private static Class<?> getSuperclass(Class<?> in){ if(in == null) { return null; } if(in.isArray() && in != Object[].class) { Class<?> type = in.getComponentType(); while(type.isArray()) { type = type.getComponentType(); } return type; } return in.getSuperclass();}编辑:添加了一些代码来获取特定类的所有超类和接口。



