一つの解決策は、渡されたキャッシュされた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.
注:この呼び出し側の変更を呼び出す方法ならば、あなたは今まで最初の1を記録します。
標準パターンはありません。これを効率的にするには、発信者が一意のIDを渡す必要があります。あなたができる最も近いのはラムダです。
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が呼ばれるたびにジョインポイントを設定することができますか? –