我目前的理解是,JDT 为我们提供了两种不同的接口和类层次结构来表示和操作 Java 代码:
Java 模型:提供一种表示 Java 项目的方法。快速创建但不包含与 AST 类层次结构一样多的信息,例如,没有关于源文件中每个元素的确切位置的信息(在可用的 AST 中)
AST:更详细的源代码表示,并提供了操作它的方法。
那是对的吗?
现在,还有一个名为 I*Binding 的接口层次结构(从IBinding开始),例如 IMethodBinding。例如,我们有 3 种不同的类型来处理方法:
- IMethod(来自 Java 模型)
- MethodInvocation(来自 AST,可以从 IMethod 获得)
- 方法绑定
从 doc IMethodBinding 看起来很像来自 AST 的 MethodInvocation,但我没有看到明显的区别,我什么时候应该使用它们。有人可以澄清一下吗?