当我跑步时:
#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);
}
我做错了什么?
答案 0 :(得分: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!');
}
答案 1 :(得分:0)
发生错误是因为您尝试扩展只有工厂构造函数的类(Logger
)。正如线程abstract classes and factory constructors所建议的那样,您应该考虑实施Logger
而不是扩展它。