当没有中间变量时,在eclipse调试器中操作返回值

时间:2012-10-11 15:23:15

标签: java eclipse debugging return-value

如果之前没有将方法分配给中间变量,是否有办法更改/定义方法使用eclipse调试器返回的值?

E.g。我有一些第三方封闭源代码调用 java.lang.Class.classForName,看起来像这样

  public static Class<?> forName(String className)
              throws ClassNotFoundException {
      return forName0(className, true, ClassLoader.getCallerClassLoader());
  }

ClassLoader.getCallerClassLoader()获取的类加载器无法加载类,所以我想尝试Thread.currentThread()。contextClassLoader是否更幸运。 实际上,我想要的是:

   public static Class<?> forName(String className)
               throws ClassNotFoundException {
       return forName0(className, true, Thread.currentThread().contextClassLoader);
   }

这有可能吗?请注意,forName0是本机方法。

2 个答案:

答案 0 :(得分:0)

您可以使用AspectJ的运行时编织在ClassLoader.getCallerClassLoader()周围应用您自己的自定义方面来替换返回值。

您也可以尝试Bugdel

答案 1 :(得分:-1)

What purpose does Class.forName() serve if you don't use the return value?

进入静态方法,看看你是否可以在那里进行调整。 它可能正在加载静态的东西

Modify/view static variables while debugging in Eclipse