当前位置:  开发笔记 > 编程语言 > 正文

按修饰符排序包含方法的数组

如何解决《按修饰符排序包含方法的数组》经验,为你挑选了1个好方法。

免责声明:这只是我目前正在做的家庭作业的一部分

假设我有一个方法数组,其中包含我所有声明的方法

Method methodList[] = classGetter.getDeclaredMethods();

其中classGetter只是获取我想要获取方法的类.有没有办法通过与方法关联的修饰符类型对此数组进行排序?当我使用打印出修改器时,我看到了

for(Method m: methodList){
    System.out.println(m.getModifiers());
}

它返回整数值.我尝试使用Arrays.sort方法排序,但我得到了错误异常.任何指针?



1> Holger..:

由于Methods不是Comparable,您必须指定Comparator确定顺序,例如:

Arrays.sort(methodList, Comparator.comparingInt(Method::getModifiers));

你可以应用一个掩码来删除那些与你想要的顺序无关的位,例如:

Arrays.sort(methodList, Comparator.comparingInt(
    m -> m.getModifiers()&(Modifier.PUBLIC|Modifier.PRIVATE|Modifier.PROTECTED)));

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有