public static List<Class<?>> getSuperClassesAndInterfaces(Class<?> srcClass) { List<Class<?>> superClasses = new ArrayList<Class<?>>(); Class<?> realClass = getRealClass(srcClass); // Add all super classes first Class<?> superClass = getRealClass(realClass).getSuperclass(); while (!isBaseClass(superClass)) { superClasses.add(superClass); superClass = superClass.getSuperclass(); } // Now add all interfaces of the passed in class and all it's super classes // Linked hash set so duplicated are not added but insertion order is kept LinkedHashSet<Class<?>> interfaces = new LinkedHashSet<Class<?>>(); interfaces.addAll(getInterfaceHierarchy(realClass)); for (Class<?> clazz : superClasses) { interfaces.addAll(getInterfaceHierarchy(clazz)); } superClasses.addAll(interfaces); return superClasses; }
public static List<Class<?>> getSuperClassesAndInterfaces(Class<?> srcClass) { List<Class<?>> superClasses = new ArrayList<Class<?>>(); Class<?> realClass = getRealClass(srcClass); // Add all super classes first Class<?> superClass = getRealClass(realClass).getSuperclass(); while (!isBaseClass(superClass)) { superClasses.add(superClass); superClass = superClass.getSuperclass(); } // Now add all interfaces of the passed in class and all it's super // classes // Linked hash set so duplicated are not added but insertion order is // kept LinkedHashSet<Class<?>> interfaces = new LinkedHashSet<Class<?>>(); interfaces.addAll(getInterfaceHierarchy(realClass)); for (Class<?> clazz : superClasses) { interfaces.addAll(getInterfaceHierarchy(clazz)); } superClasses.addAll(interfaces); return superClasses; }
public static List<Class<?>> getSuperClassesAndInterfaces(Class<?> srcClass) { List<Class<?>> superClasses = new ArrayList<Class<?>>(); Class<?> realClass = getRealClass(srcClass); // Add all super classes first Class<?> superClass = getRealClass(realClass).getSuperclass(); while (!isBaseClass(superClass)) { superClasses.add(superClass); superClass = superClass.getSuperclass(); } // Now add all interfaces of the passed in class and all it's super // classes // Linked hash set so duplicated are not added but insertion order is // kept LinkedHashSet<Class<?>> interfaces = new LinkedHashSet<Class<?>>(); interfaces.addAll(getInterfaceHierarchy(realClass)); for (Class<?> clazz : superClasses) { interfaces.addAll(getInterfaceHierarchy(clazz)); } superClasses.addAll(interfaces); return superClasses; }