问答详情
源自:5-1 Java 方法反射的基本操作

为什么invoke的时候需要把a1对象入参,m1不就是通过a1.getClass()得到的么?

为什么invoke的时候需要把a1对象入参,m1不就是通过a1.getClass()得到的么?

提问者:EverL 2016-10-21 17:25

个回答

  • leowei
    2016-11-05 15:34:56
    已采纳

    这样想一下,就明白了,如果你不把对象a1传入,那么到底是哪个对象来操作方法呢!

    像 a1 这样的对象可以new 出很多,比如a2,a3................: 他们在堆内存中是不同的对象!

    当然来区分对象!,可以就可以明确那个对象 是 a1 还是其他对象来操作方法了

  • qq_你的人_2
    2018-11-26 11:32:13

    可是如果我已经有类的对象,又知道方法名,又知道对应的参数,还要反射来干什么?

  • heihei210
    2016-10-21 18:01:58

    m1是通过c.getMethod得到的,这时候c已经是类类型了,而a1是类的实例