2009-08-07 62 views
2

我正在为Eclipse中的Java代码使用增量构建器。 Eclipse提供了一个ResourceDelta,它告诉我自上次构建以来哪些资源发生了变化。但是,我想要获得更详细的信息,例如什么方法或什么字段定义改变了。在“与...相互比较”视图中似乎有类似于我想要的功能。但是,此代码与构建引擎完全断开,似乎与ResourceDeltas不兼容。什么是一个很好的方法来弄清楚我想要什么?我可以看到的最佳解决方案是比较两个AST,但我也找不到任何内置支持。Eclipse中两个AST的结构比较

回答

2

JavaCore确实通过IElementChangedListenerIJavaElementDelta接口提供此信息。这里有一个快速的代码示例,让您开始:

JavaCore.addElementChangedListener(new MyJavaElementChangeReporter(), ElementChangedEvent.POST_RECONCILE);

的更多细节Manipulating Java code可从JDT插件开发者指南。

+1

这看起来就像我需要的东西。非常感谢! – user66237 2009-08-18 10:34:52

+0

感谢您的信息。我和@ user66237的情况类似,但是我正在寻找细微的变化。也就是说,我正在设法设置IJavaElementDelta.F_CONTENT标志,以准确获取更改。例如,我想知道方法体中是否有新的方法调用。如果是这样,我想知道哪个方法正在被调用。有没有什么办法可以通过这个API来实现这一点? – 2010-11-11 19:19:33