Я пытаюсь сопоставить такие вызовы методов некоторого свободного API. Может быть произвольное количество вызовов метода (минимум 2 вызова, но не верхний предел). Все выражение должно быть сопоставлено. На самом деле, цель состоит в том, чтобы найти вызовы с цепными вызовами в беглой api, которые пропускают doIt()
, так как в этом случае свободный API ничего не делает.Согласование вызовов цепных методов со структурным поиском
FooClass.some("fluent")
.api()
.bar(()->"somelambda")
.doIt();
Я пытался что-то вроде
FooClass.$a$($b$)
и использовать различные "встречаемости отсчеты" как 0,∞
для $a$
и 0,1
для $b$
, но это по-прежнему соответствует только FooClass.some("fluent")
методы API не возвращать экземпляры 'FooClass', но мне кажется, что все еще можно использовать тип выражения сопоставления нескольких классов' (FooClass | BarClass) ', как я опубликует в ответ – user140547