Java动态代理 InvocationHandler接口的invoke方法,是JDK实现的方法,还是程 序员自己实现的invoke方法。
发布网友
发布时间:2022-04-25 06:52
我来回答
共1个回答
热心网友
时间:2023-11-04 22:48
method.invoke 是Java反射里面的知识
就是把这个method激活。 sub这包含这个method的对象。 args就是这个method的参数值(被封装成了Object)
举个例子,有个类A,实例一个对象a,类里有个public void say(String str) 的方法,获得这个method为say后:
method.invoke(a,new Object[]{"this is string"});
即等同于
a.say("this is string")追问你说的把method激活,是指public Object invoke(Object proxy, Method“ method”, Object[] args) 是指把 这个参数激活吗。 还是指method.invoke(sub,args) 激活这个反射。
还有一点,我还没弄懂, public Object invoke(Object proxy, Method method, Object[] args) 这个方法 是InvocationHandler接口里的。用接口的话,方法必须实现的。 那这个invoke方法是在那个类里实现的啊。 还就是编程的人,自己在编写Iinvoke的。
追答1.我说的method激活是 method.invoke(sub,args)
2.动态代理截获某个方法,在方法前方法后加东西,方法执行还是要自己 method.invoke(sub,args)