flutter/dart中可以通过以下方式获取当前执行代码所在的类、方法和代码行,参考以下代码示例:
import 'package:stack_trace/stack_trace.dart';
void main() {
print(__LINE__); //获取归属行
print(__METHOD__);//获取归属方法
print(__FILE__);//获取归属文件
new Foo();
}
class Foo {
Foo() {
print(__CLASS__);//获取归属类
}
}
String get __CLASS__ {
var frames = new Trace.current().frames;//调用栈
if(frames.length > 1) {
var member = frames[1].member;
var parts = member.split(".");
if(parts.length > 1) {
return parts[1];
}
}
return null;
}
String get __METHOD__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
return frames[1].member;
}
return null;
}
String get __FILE__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
return frames[1].uri.path;
}
return null;
}
int get __LINE__ {
var frames = new Trace.current().frames;
if(frames.length > 1) {
return frames[1].line;
}
return null;
}
全部评论