commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pino Silvaggio (JIRA)" <>
Subject [jira] Created: (LANG-500) ClassUtils.getAllInterfaces(...) could be more efficient
Date Wed, 29 Apr 2009 03:35:30 GMT
ClassUtils.getAllInterfaces(...) could be more efficient

                 Key: LANG-500
             Project: Commons Lang
          Issue Type: Improvement
    Affects Versions: 3.x
            Reporter: Pino Silvaggio
            Priority: Trivial

This could seem like a very minor thing but why not improve
the code once in a while...

Something like this could replace the current inefficient code:

    public static List<Class<?>> getAllInterfaces(Class<?> clazz)
        if (clazz == null)
            return null;

        HashSet<Class<?>> interfacesSet = new HashSet<Class<?>>();
        LinkedList<Class<?>> interfacesList = new LinkedList<Class<?>>();

        getAllInterfaces(clazz, interfacesSet, interfacesList);

        return interfacesList;

    private static void getAllInterfaces(
            Class<?> clazz,
            HashSet<Class<?>> interfacesSet, List<Class<?>> interfacesList)
        while (clazz != null)
            Class<?>[] interfaces = clazz.getInterfaces();

            for (Class<?> i : interfaces)
                if (!interfacesSet.add(i))
                    getAllInterfaces(i, interfacesSet, interfacesList);

            clazz = clazz.getSuperclass();

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message