我對Java反射不太好,我試圖調試使用大量反射的一段難看的代碼。我在應該調用的某些方法上放置了一個斷點,但是當我執行該程序時,代碼不會暫停。因此,這讓我相信,在Eclipse中運行時使用反射運行方法會忽略斷點(Windows 7上的Indigo)。是否可以調試Java反射?
任何人都可以證實這一點嗎?我在下面提供了一個例子,雖然由於我不知道如何執行一個特殊的方法使用反射,它不起作用,但我希望它澄清我在問我的問題:
public static void main(String[] args)
{
try
{
Class test = Class.forName("Test");
test.runMethodDoSomething();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static class Test
{
public void doSomething()
{
// Place breakpoint here.
}
}
我無法證實這一點!我曾深入反思過。調試一直工作。但你的代碼甚至不編譯! – home
您可以使用體面的調試器調試任何Java代碼(我使用Eclipse和NetBeans IDE及其調試器)。也許問題在於你正在運行這個代碼(而不是調試)或者它根本沒有被調用。如果你想確定它,放置簡單的'System.out.println(「反射調用!」);'或類似的,以知道代碼已被執行。 –
無法確認它,我已經完成了一個基於元數據的對象合併實用程序的核心,我使用純粹的反射和調試工作的應用程序保存了我的生活太多次。 – Gamb