我正在尝试使用反射来获取在类中显式声明的所有公共方法(因此它c.getMethods()也不起作用,因为它也抓取了超类方法).我可以用
Method[] allMethods = c.getDeclaredMethods();
Run Code Online (Sandbox Code Playgroud)
从这个类中获取方法,但我只想使用公共方法.
此时,我正在尝试获取修改器并基于此执行某些操作,但由于某种原因,调试器中显示的修饰符值和修饰符值输出不同.例如,我有一个私有getNode方法,虽然"修饰符"值出现2在调试器中,但它会像"1"我一样输出System.out.println(c.getModifiers()).奇怪的.有另一种方法可以获得公共方法,还是我错过了一些明显的东西?谢谢你的帮助!
Sot*_*lis 45
我不知道你是如何使用的Modifier,但这里的意思是如何使用它
Method[] allMethods = Test.class.getDeclaredMethods();
for (Method method : allMethods) {
if (Modifier.isPublic(method.getModifiers())) {
System.out.println(method);
// use the method
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12543 次 |
| 最近记录: |