说我有
class RestSimulator {
@Path("/var")
void functionOne() {
final Type type = this.runtimeType;
final InstanceMirror instanceMirror = reflect(this);
final ClassMirror classMirror = instanceMirror.type;
final MethodMirror methodMirror = ?????
var metadata = methodMirror.metadata;
var path = metadata.first.reflectee;
print(path.toString()):
}
}
如何获取调用函数???
的MethodMirror[更新] 我的意思是没有做像
这样的事情final MethodMirror methodMirror = functions[const Symbol('functionOne')];
所以主要的问题可能是:如何获得调用/当前函数的符号?
答案 0 :(得分:1)
AFAIK没有简单的方法可以在运行时获取当前函数的引用。
我说简单因为你可以从StackTrace获得这个名字,但它真的很难看并且表现糟糕......
class A {
m() {
var functionName;
try {
throw '';
} catch(e, s) {
functionName = parseStackTraceToGetMethod(s.toString());
}
print(functionName); // displays A.m
}
}
parseStackTraceToGetMethod(String s) =>
s.substring(8, s.indexOf("("));
main() {
new A().m();
}