하나 개의 솔루션에 전달되는 캐시의 Throwable을하는 것입니다
class StackPoint {
Throwable stack;
public Throwable getStack() {
if (stack == null)
stack = new Throwable();
return stack;
}
}
public void methodToCall(StackPoint sp) {
Throwable t = sp.getStack();
}
static final StackPoint one = new StackPoint();
methodToCall(one); // Have to remember to give each line a different StackPoint.
참고 :.이 발신자의 변화를 호출하는 방법, 당신은 오직 첫 번째를 기록합니다.
표준 패턴이없고 효율적이기를 원한다면 발신자는 고유 한 ID를 전달해야합니다. 당신이 할 수있는 가장 가까운 것은 람다 (lambda)입니다.
public void methodToCall(Runnable run) {
Class id = run.getClass();
}
당신은 같은 줄에 여러 번 나타나는 경우에도이 호출 될 때마다 장소를 다른 클래스를 만듭니다이
methodtoCall(()->{});
이처럼 호출 할 수 있습니다. 매번 같은 오브젝트를 재사용하므로 쓰레기가 발생하지 않습니다. 당신은
void methodToCall(IntFunction fun) {
}
으로이 짧아을하고 뭔가 asynchroneous이 관련되기 때문에
methodToCall(a->1);
가능한 복제본 http://stackoverflow.com/questions/26425049/how-to-get-a-unique-method-identifier –
궁금한 점 : 여기에서 어떤 문제를 해결 하시겠습니까? – GhostCat
AspectJ를 살펴보고 API가 호출 될 때마다 조인 포인트를 설정할 수 있습니까? –