我有一个方法可以在发生错误时采用默认方法,并将错误转储到用户的计算机屏幕上:
void onError(FlutterErrorDetails details) => FlutterError.dumpErrorToConsole(details);
现在,当然会邀请用户重写此方法,但是当时间到了并且确实发生错误时,我想知道该方法是否被重写。但是我不知道该怎么做。
在Dart中,函数是一类对象,因此没有办法“记录”该类定义该方法的含义以及实例化该类对象时的状态吗?像这样:
static final FlutterExceptionHandler _dumpError = (FlutterErrorDetails details) => FlutterError.dumpErrorToConsole(details);
if (onError == _dumpError) {
_prevOnError(details);
} else {
onError(details);
}
现在,以上内容当然不起作用。 onError不等于_dumpError。我什至尝试过:
static final FlutterExceptionHandler _dumpError = FlutterError.dumpErrorToConsole(details);
void onError(FlutterErrorDetails details) => _dumpError;
现在这实际上可以正常工作,因为当发生错误时,onError()会触发并将错误转储到控制台。但是,这并不完全正确,因为比较(==)再次返回false。我该如何实现呢?:onError == _dumpError
您认为有办法吗?有没有一种方法可以比较两个函数的“内容”?
我不知道。我现在正在抓稻草。
干杯。
答案 0 :(得分:0)
“我想知道该方法是否被重写。但是我不知道该怎么做”。 OOP的要点是,您根本不需要关心,甚至不必知道是否发生了这种情况。您的实际用例是什么?