|
[jira] Commented: (LANG-500) ClassUtils.getAllInterfaces(...) could be more: msg#00428issues-commons-apache
[ https://issues.apache.org/jira/browse/LANG-500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736214#action_12736214 ] Pino Silvaggio commented on LANG-500: ------------------------------------- Oups... Correction: if (!interfacesFound.add(i)) becomes if (interfacesFound.add(i)) > 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 > Fix For: 3.0 > > Attachments: LANG-500.patch, patch-ClassUtils-01.txt, > patch-ClassUtils-02.txt > > > 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: > {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(); > } > } > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
|
|
||||||||||||||||||||||||||
|
|
|
| News | Mail Home | sitemap | FAQ | advertise |