2

当我运行时:

#import('package:logging/logging.dart');

class Trace extends Logger {
    Trace(String name) : super(name);
}

飞镖 说:

'file:///home/jim/Code/dart/trace/Trace.dart': Error: line 6 pos 26: super class constructor 'Logger.' not found
    Trace(String name) : super(name);

我正在关注技术概述中的示例:

class Square extends Rectangle {
  Square(num size) : super(size, size);
}

我究竟做错了什么?

4

2 回答 2

1

该类Logger没有任何构造函数。它有工厂。

您试图创建一个扩展Logger并指定一个默认构造函数的类,该构造函数试图调用Logger不存在的默认构造函数。

也许你正在寻找这样的东西:

import 'package:logging/logging.dart';

class Trace extends Logger {
  factory Trace(String name) {
    return new Logger(name);
  }
}

main() {
  var i = new Trace('foo');

  i.on.record.add((LogRecord record) {
    print(record.message);
  });

  i.severe('blaa!');
}
于 2012-11-13T15:03:08.453 回答
0

发生错误是因为您尝试扩展Logger只有工厂构造函数的类 ( )。正如线程抽象类和工厂构造函数所建议的那样,您应该考虑实现Logger而不是扩展它。

于 2012-11-13T07:23:31.483 回答