为什么invoke的时候需要把a1对象入参,m1不就是通过a1.getClass()得到的么?
这样想一下,就明白了,如果你不把对象a1传入,那么到底是哪个对象来操作方法呢!
像 a1 这样的对象可以new 出很多,比如a2,a3................: 他们在堆内存中是不同的对象!
当然来区分对象!,可以就可以明确那个对象 是 a1 还是其他对象来操作方法了
可是如果我已经有类的对象,又知道方法名,又知道对应的参数,还要反射来干什么?
m1是通过c.getMethod得到的,这时候c已经是类类型了,而a1是类的实例