ClassUtils.getAllInterfaces(...) could be more efficient
--------------------------------------------------------
Key: LANG-500
URL: https://issues.apache.org/jira/browse/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))
{
interfacesList.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.