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 に答える