我想知道哪个类调用了特定函数。我一直在查看文档,但没有成功。我已经知道如何get the name of a class,但这与我正在寻找的不同。我已经找到了 something related for java 但对于飞镖我还没有。也许我错过了什么。
比如说,我有一个像这样的打印功能:
class A {
void printSomethingAndTellWhereYouDidIt() {
// Here I would also include the class where this function is
// being called. For instance:
print('you called the function at: ...');
//This dot-dot-dot is where maybe should go what I'm looking for.
}
}
class B {
A a = A();
void test() {
a.printSomethingAndTellWhereYouDidIt();
}
}
输出应该是这样的:
you called the function at: B
如果有什么方法可以实现这一点,请告诉我。背后的想法是将其与记录器一起使用,例如 the logging package。提前致谢。
答案 0 :(得分:1)
您可以随时使用 StackTrace.current
获取堆栈跟踪,即发生异常时打印的对象。这包含导致调用的调用链的行号,应提供您需要的信息。
class A {
void printSomethingAndTellWhereYouDidIt() {
print(StackTrace.current);
}
}
class B {
A a = A();
void test() {
a.printSomethingAndTellWhereYouDidIt();
}
}
如果您这样做是为了调试目的,您还可以在 printSomethingAndTellWhereYouDidIt
中设置断点以检查它是从哪里调用的。