按修饰符对包含“方法”的数组进行排序



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

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

Method methodList[] = classGetter.getDeclaredMethods();

在哪个类中Getter只是获取我想要获取的方法的类。有没有一种方法可以通过与该方法关联的修饰符来对该数组进行排序?当我使用打印修改器时,我看到了这一点

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

它返回整数值。我尝试使用Arrays.sort方法进行排序,但出现了错误异常。有指针吗?

由于Method不是Comparable,因此必须指定一个Comparator来确定顺序,例如:

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

您可以应用掩码来删除那些与您想要的排序无关的位,例如:

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

相关内容

  • 没有找到相关文章

最新更新