Java 当没有中间变量时,在eclipse调试器中操纵返回值
如果以前没有给中间变量赋值,是否有方法使用eclipse调试器更改/定义方法返回的值 例如,我有一些第三方封闭源代码 java.lang.Class.classForName,如下所示Java 当没有中间变量时,在eclipse调试器中操纵返回值,java,eclipse,debugging,return-value,Java,Eclipse,Debugging,Return Value,如果以前没有给中间变量赋值,是否有方法使用eclipse调试器更改/定义方法返回的值 例如,我有一些第三方封闭源代码 java.lang.Class.classForName,如下所示 public static Class<?> forName(String className) throws ClassNotFoundException { return forName0(className, true, ClassLoader.get
public static Class<?> forName(String className)
throws ClassNotFoundException {
return forName0(className, true, ClassLoader.getCallerClassLoader());
}
公共静态类forName(字符串className)
抛出ClassNotFoundException{
returnforname0(className,true,ClassLoader.getCallerClassLoader());
}
classloader.getCallerClassLoader()获得的classloader无法加载该类,因此我想试试Thread.currentThread().contextClassLoader是否更幸运。
实际上,我想要的是:
public static Class<?> forName(String className)
throws ClassNotFoundException {
return forName0(className, true, Thread.currentThread().contextClassLoader);
}
公共静态类forName(字符串className)
抛出ClassNotFoundException{
返回forName0(className,true,Thread.currentThread().contextClassLoader);
}
这有可能吗?请注意,forName0是一个本机方法。
进入静态方法,看看是否可以在那里进行调整。
它可能正在加载静态的东西
您可以使用的运行时编织来应用您自己的自定义特性来替换返回值
您也可以尝试。返回值确实被第三方应用程序使用(这里的目的是通过其字符串名称获取类,而不是进行初始化),它抱怨为null(因为原始类加载器无法加载)。嗨,我用其他方法解决了我的问题,所以我没有进一步研究您的建议。看起来,他们似乎做了我想做的,所以我会把你的答案标记为被接受的答案。