重写方法时如何在Dart中确定?

时间:2019-02-12 20:09:04

标签: dart flutter

我有一个方法可以在发生错误时采用默认方法,并将错误转储到用户的计算机屏幕上:

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

您认为有办法吗?有没有一种方法可以比较两个函数的“内容”?

我不知道。我现在正在抓稻草。

干杯。

1 个答案:

答案 0 :(得分:0)

“我想知道该方法是否被重写。但是我不知道该怎么做”。 OOP的要点是,您根本不需要关心,甚至不必知道是否发生了这种情况。您的实际用例是什么?