Почему следующий код:Почему я не получил предупреждение «совет не был»?
pointcut callsToList() : call(* List.*(..));
before(List l) : callsToList() && target(l) {
System.out.println("cool");
}
генерирует следующее предупреждение:
совет, определенный в org.eclipse.ajdt.examples.ListAdvice не применяется [Xlint: adviceDidNotMatch]
Я работаю в Eclipse. Я установил eclipse aspectj plugin, и, конечно, мой проект - проект aspectj.
Edit: Кроме того, я начал с рабочим примером, приведенным на AJDT плагина:
pointcut callsToBeginTask() : call(void IProgressMonitor.beginTask(..));
before() : callsToBeginTask() {
System.out.println("cool");
};
я не вижу никакой разницы, за исключением того факта, что этот пример работает без предупреждения ...
Возможно, это связано с политикой загрузки классов Eclipse/OSgi? Как работает аспект, чтобы подключить предоставленные точки pointcut? –
Можете ли вы показать код, который следует переплетать по совету? – Espen
Не забудьте понять ваш запрос. Я хочу, чтобы этот совет вызывался в приложении Eclipse с несколькими пользовательскими плагинами. Таким образом, код, который я хочу «анализировать», разбит на многие плагины/пакеты/классы. –