gpt4 book ai didi

java - 为什么jdk动态代理在debug每一步模式时都会调用InvocableHandler.invoke "toString"方法

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:00 30 4
gpt4 key购买 nike

当我使用jdk动态代理时,似乎

Object proxy = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
new Class<?>[] { xx }, handler);

当我调试程序时,一步步跳过,处理程序变体将使用“toString”方法调用其方法

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
}
if (method.getName().equals("toString")){
System.out.println( " toString " +args);//**executed every step over line,why??**
return method.invoke(target,args);
}

但非 Debug模式时没有问题。

最佳答案

enter image description here

我猜 IDE 需要在红框中显示信息,这会导致调用对象的 toString() 方法。

关于java - 为什么jdk动态代理在debug每一步模式时都会调用InvocableHandler.invoke "toString"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46292536/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com