2

我正在尝试调试一个有问题的java eclipse项目!

我开始使用CGLIB使用索引方法进行更快的反射调用。

例子

FastClass fastClass = FastClass.create(getClass());
int index = fastClass.getIndex("methodName", new Class[] { Object.class });
fastClass.invoke(index, this, new Object[] { obj } );

现在,当我尝试将断点放入由 fastreflection 方法调用的类中时,这是 eclipse 输出。

断点输出

我尝试在生成行号时更改编译器选项,但没有结果。

我还上传了一个复制问题的 Eclipse 项目(使用 Juno 版本构建)!!

http://www.filefactory.com/file/4zryz3gjgbyh/n/FastDebug.rar

谢谢!

4

1 回答 1

0

我“解决”(理解)了这个问题,但这不是 Eclipse 的问题。当您启动程序时,这一行: FastClass.create(ReflectionTarget.class); 最终创建一个全新版本的已编译类,从类文件中删除所有非必要的东西以使其“快速” - 包括所有行号/调试信息,这意味着无法在其中设置断点。

http://cglib.sourceforge.net/xref/net/sf/cglib/core/package-summary.html

没有 javadoc,您需要阅读源代码,但现在我明白这不是问题,而是此方法的一个特点,可以快速反射!

于 2012-10-18T06:38:49.623 回答