1

実際には2つの質問があります。

最初の 1 つは、「this」を持つ ID (my.package.MyClass@3e7bfc04) を取得する方法です (アスペクト内で pjp.getTarget() を使用して「this」を取得します)。

2つ目は、現在のプログラム実行ポイント(他のクラスのメソッド、またはより深いメソッド)で呼び出し元のインスタンスIDを取得する方法です。を使用してコールスタックを取得できます

StackTraceElement [] trace = Thread.currentThread().getStackTrace();

そして、必要な発信者がいるかどうかを判断します。次に、呼び出し元のインスタンス ID を取得したいのですが、取得方法がわかりません。

4

1 に答える 1

0

Java リフレクションStackTraceElementを使用できます。

StackTraceElement[] elements = new Throwable().getStackTrace();

    String calleeMethod = elements[0].getMethodName();
    String callerMethodName = elements[1].getMethodName();
    String callerClassName = elements[1].getClassName();

    System.out.println("CallerClassName=" + callerClassName + " , Caller method name: " + callerMethodName);
    System.out.println("Callee method name: " + calleeMethod);
于 2012-06-08T09:54:07.507 に答える