我对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