Eri*_*gil 2 java reflection java-8
免责声明:这只是我目前正在做的家庭作业的一部分
假设我有一个方法数组,其中包含我所有声明的方法
Method methodList[] = classGetter.getDeclaredMethods();
Run Code Online (Sandbox Code Playgroud)
其中classGetter只是获取我想要获取方法的类.有没有办法通过与方法关联的修饰符类型对此数组进行排序?当我使用打印出修改器时,我看到了
for(Method m: methodList){
System.out.println(m.getModifiers());
}
Run Code Online (Sandbox Code Playgroud)
它返回整数值.我尝试使用Arrays.sort方法排序,但我得到了错误异常.任何指针?
由于Methods不是Comparable,您必须指定Comparator确定顺序,例如:
Arrays.sort(methodList, Comparator.comparingInt(Method::getModifiers));
Run Code Online (Sandbox Code Playgroud)
你可以应用一个掩码来删除那些与你想要的顺序无关的位,例如:
Arrays.sort(methodList, Comparator.comparingInt(
m -> m.getModifiers()&(Modifier.PUBLIC|Modifier.PRIVATE|Modifier.PROTECTED)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |