私はclass X
を持っていて、その中にdoStuff()
というstatic
というメソッドがあり、なんらかの理由でdoStuff()
を呼び出すメソッドを持ついくつかのクラスがあります。たとえば、doStuff()
に印刷メソッドを持たせて、それが呼び出されたメソッドやクラスを出力する方法はありますか?静的メソッドを呼び出すクラスとメソッドを取得するにはどうすればよいですか?
1
A
答えて
4
はい:new Throwable().getStackTrace()
はStackTraceElement
の配列を返します。インデックス番号1があなたの発信者です。
+1
+1または 'Thread.currentThread()。getStackTrace()' –
+0
ありがとうございましたが、私が使ったインデックスは3でした。インデックス1は私に名前クラスAとdoStuff()のクラス – nyxz
0
力Exception
を行う必要はありません。この類似した質問をチェック:
package test;
class TestCaller {
public static void meth() {
System.out.println("Called by class: " + sun.reflect.Reflection.getCallerClass(2));
}
}
public class Main {
public static void main(String[] args) {
TestCaller.meth();
}
}
出力: "クラスによって呼び出されます:クラスtest.Main"
Is there a way to dump a stack trace without throwing an exception in java?
2
/**
* <li> 0 dumpThreads
* <li> 1 getStackTrace
* <li> 2 getCallingMethodName
* <li> 3 [calling method]
*
* @return
*/
private String getCallingMethodName() {
return Thread.currentThread().getStackTrace()[3].getMethodName();
}
1
を使用して、発信者のクラスを取得することができます
関連する問題
- 1. クラスで静的メソッドを呼び出す?
- 2. C#で別のクラスから非静的メソッドを呼び出すにはどうすればよいですか?
- 3. 静的メソッド内でクラスのメンバー変数を呼び出すにはどうすればよいですか?
- 4. 変数クラスで静的メソッドを呼び出すにはどうすればよいですか?
- 5. プロジェクトを取得し、メソッド内から "コンパイル"メソッドを呼び出すにはどうすればよいですか?
- 6. 別のクラスの静的メソッドから非静的メソッドを呼び出すにはどうすればよいですか?
- 7. 静的クラスC#ASP.NET Webフォームで静的メソッドを呼び出す
- 8. リフレクション(Java)を使用してプライベート静的メソッドを呼び出すにはどうすればよいですか?
- 9. 他のプライベート静的メソッドを呼び出す静的メソッドをモックするにはどうすればよいですか?
- 10. ヌルオブジェクトで静的メソッドを呼び出す
- 11. C#で静的メソッドを呼び出す
- 12. Javaで静的メソッドを呼び出す
- 13. コンストラクタで静的メソッドを呼び出す
- 14. 静的メソッド呼び出しの左側のクラスを取得しますか?
- 15. あるクラスから別のクラスにメソッドを呼び出すにはどうすればよいですか?
- 16. あるクラスから別のクラスへKeyEventメソッドを呼び出すにはどうすればよいですか?
- 17. application_controllerでメソッドを呼び出すにはどうすればよいですか?
- 18. 静的メソッドで非静的GetType()を呼び出しますか?
- 19. 静的メソッドから非静的メソッドを呼び出す静的メソッドで作成されたUSINGインスタンス
- 20. 静的メソッドを呼び出すsymfony DI
- 21. 静的メソッドを呼び出すユニットテストコード
- 22. C#静的メソッドを呼び出す
- 23. サブクラスの静的メソッドを親クラスから呼び出す
- 24. クラスの静的メソッドを呼び出す方法は?
- 25. 他のクラスの静的メソッドをPythonで呼び出す
- 26. Pythonのクラス内で静的メソッドを呼び出す
- 27. C#で静的メソッドを呼び出すとどうなりますか?
- 28. メソッド内のメソッドを呼び出す変数を使用するにはどうすればよいですか?
- 29. どのような時点で、クラスの静的メソッドと非静的メソッドのどちらか一方しか呼び出されないようにするにはどうすればよいですか?
- 30. JavaScript/ES7クラスで静的メソッドを動的に呼び出し
「をドンください。これをやってください! (可能であれば、デバッグを除いてもテストはおそらくもっと良いでしょう) –