Мое текущее понимание, что JDT предоставляет нам два различных интерфейса и класса hierachies для представления и управления Java-код:Какова роль I * Binding в Eclipse JDT?
Java Модель: обеспечивает способ представления проекта Java. Быстро создать, но не содержит столько информации, как класс АСТ иерархию, например, нет информации о точном положении каждого элемента в исходном файле (в AST, что это доступно)
АСТ: более подробное представление исходного кода плюс предоставляет средства для его управления.
Верно ли это?
Теперь существует иерархия интерфейсов с названием I * Binding (начиная с IBinding), например IMethodBinding. Так, например, у нас есть 3 различных типов для работы с методами:
- IMethod (от Java Model)
- MethodInvocation (от AST, может получить его от IMethod)
- IMethodBinding
От doc IMethodBinding кажется очень похоже на MethodInvocation из AST, но я не вижу четкого различия и когда должен использовать их. Может кто-то прояснить это?
Не могли бы вы рассказать, как получить MethodInvocation из IMethod, пожалуйста? – berezovskyi