通过反射获取给定类的可访问方法列表
2022-09-01 05:19:42
有没有办法获取给定类可访问(不一定是公共)的方法列表?有问题的代码将处于完全不同的类中。
例:
public class A {
public void methodA1();
protected void methodA2();
void methodA3();
private void methodA4();
}
public class B extends A {
public void methodB1();
protected void methodB2();
private void methodB3();
}
对于我想获得的课程:B
- 所有自己的方法
-
methodA1
和从类methodA2
A
-
methodA3
当且仅当类与B
A
methodA4
永远不要包含在结果中,因为 class 无法访问它。为了再次澄清,需要查找和返回上述方法的代码将位于完全不同的类/包中。B
现在,只返回公共方法,因此不会做我想做的事; 仅返回当前类的方法。虽然我当然可以使用后者并手动检查类层次结构以检查可见性规则,但如果没有更好的解决方案,我宁愿不这样做。我在这里错过了一些明显的东西吗?Class.getMethods()
Class.getDeclaredMethods()