간결한 제목을 만드는 것은 어렵습니다.컷이 수퍼 클래스에 있지만 파생 클래스가 재정의 될 때 pointcut을 두 번 치는 것을 피하는 방법은 무엇입니까?
어쨌든, 나는 부모 클래스가 상상 :
public class Shape {
public Dimensions getDimensions() {
// Does some generic stuff.
}
}
을 내가 가지고있는 getDimensions 방법에 우선 그것에서 파생 된 클래스 : 나는 Shape.getDimensions
에 포인트 컷과 측면을 만들 때
public class Circle extends Shape {
public Dimensions getDimensions() {
// Does some stuff.
super.getDimensions();
}
}
을 Circle.getDimensions
이 호출되면 포인트 컷은 두 번 히트됩니다 : Circle.getDimensions
에 대해 한 번, super.getDimensions
에 대해 한 번 호출됩니다.
포인트 컷은 다음과 같이 보입니다 : @Pointcut("execution(* Shape.getDimensions(..))")
내가 (JoinPoint.getSignature().getDeclaringType().getName()
사용) 선언 형식의 이름을 확인하기 위해 조언을 내부에 해킹을 추가했습니다,하지만 난 그게 오히려 총 찾아서 해킹과 같은 종류의 느낌 . 나는 이것을하기위한 더 좋은 방법이 있어야한다고 생각한다.
있습니까?
서식이 좋지 않은 경우 사과드립니다. 처음 여기에 질문을합니다. (저는 이미 답을 찾을 수 있습니다).
작품 아름답게, 감사합니다. 나는 주석 스타일에 익숙하지만 키는 cflowbelow 호출이었다. 내가 그것을 하나의 충고로 요약 할 수 있는지를 알아 내려고 노력하면서 (나는 그것을 알 수 없었다), 나는이 아름다운 부록을 발견했다 : http://www.eclipse.org/aspectj/doc/next/progguide/ semantics-pointcuts.html – Depressio
미리 답변 해 주셔서 감사합니다. ;-) 제발. – kriegaex
나는 15 점이 분명히 필요하다. 나는 단지 11을 가지고있다. 나를 믿어라, 나는 시험했다! : – Depressio