1、如果一个类中只有一个名称为a的方法,那么我们可以直接调用即可,如下图所示
2、以下是我们直接使用传统的方式直接调用这个类中的a方法。
3、但是如果一个类中,拥有多个方法名一样的方法,那么我们使用反射机制,要如何去调用这些方法呢,如下图所示,一个类中有多个方法名相同的方法。
4、可能已经注意到了,虽然他们具有相同的方法名,但是他们却有着一些差异
5、他们要求传入的参数类型及其数量都是不一样的。通过先查看一遍不同方法,然后即可知道,我们要调用的具体是哪个方法,最后直接使用反射机制进行调用。
6、使用反射机制的类加载器,去加载类。具体如下图所示、
7、接下来,对类进行实例化,实例化使用到的方法为下图所示:
8、实例化后,我们即可开始指定方法,我们使用"getDeclaredMethod()"来选择不同的方法。
9、第一个参数表示的是方法名,指定要去指定这个方法,而第二个参数指定的是方法的形参。
10、我们这里指定的是形参,如果没有参数,则直接写成null即可。
11、接下来,我们使用invoke,调用指定类中的这个方法,第一个参数是实例化好的类,第一个参数是实际需要传入的参数,而不是形参。
12.通过上图的方法,找到下图所示的方法,并调用它。
class A
{
int te(){}
}
class B
{
A a=new A();//在公共类里新建类A的对象也行,反正调用其他类的方法要通过那个类的实例对象来调用
a.te();//通过A类的实例对象a调用方法te()
}