2015-06-09 3 views
0

Я пытаюсь создать конкретное исполнение конструктора класса с пересечениями, но я получаю следующий маркер: pointcut marker error
код Формата:срез точки выполнения для конкретного конструктора класса

public aspect CarLogger { 
private Logger logger; 

pointcut instantiate() : execution (Car.new(..)); 

after() : instantiate(){ 
    logger.log(Level.INFO, "In Car::Car()", thisJoinPoint.getThis()); 
} 

этот код не возвращает соответствия для данного типа имя автомобиль. Но если я меняю execution (Car.new(..)) на execution (*.new(..)) Я получаю все конструкторы в проекте.
Мое желание иметь срез точек выполнить только к определенному классу Car

+0

Вы можете добавить полное имя вашего класса (то есть вместе с '' package' как com.abc.vehicle.Car.new (..) ') вместо' Car' в исполнении среза точек. –

ответ

1

Я думаю, это потому, что срез точек не в состоянии отобразить Car с классом, так как вы не указали правильный путь к нему, т.е. полное имя along with package.

pointcut instantiate() : execution (com.abc.vehicle.Car.new(..)); 
+0

oh ... как я пропустил это .... Спасибо! –

+1

Это случается со мной также, я также забываю маленькие мелочи. –