以前に中間変数に割り当てられたことがない場合、Eclipseデバッガーを使用してメソッドが返す値を変更/定義する方法はありますか?
たとえば、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はネイティブメソッドであることに注意してください。