Я играю с Java-обработчиками аннотации с отличными результатами. Теперь я хотел бы сделать следующее, что, насколько я могу судить, невозможно.Java Аннотации Процессор для анализа выражений?
У меня есть несколько классов, которые реализуют шаблон Builder. Скажем, например
new FooBuilder().doSomething("A").doSomethingElse("B").execute();
Очень важно, что «цепочка» из вызовов метода завершается использованием execute()
метода. В противном случае строитель в основном ничего не сделает.
Поэтому я хотел использовать JAP для проверки наличия метода execute()
для определенных типов выражений во время компиляции. К сожалению, кажется, что самая тонкая информация, которую я могу получить, - это уровень декларации метода, а не выражения.
Является ли это тем, что я хочу вообще?
Ans, что произойдет, если пользователь сделает что-то вроде этого: 'FooBuilder fb = new FooBuilder(). DoSomething (« A »). DoSomethingElse (« B »);/* сделать что-то еще */fb.execute(); '? –
В этом случае назначение может служить оправданием отсутствия 'execute()'. Но вы правы, это не безупречно. Тем не менее, он мог поймать множество основных случаев. – geert3