我正试图从Map
这样延伸:
class TestClass extends Map {
}
就这样,我收到了错误Constructor '<default>' in class 'Map<dynamic, dynamic>' is not generative.
不知道该怎么做,我补充一下:TestClass() : super();
我仍然有同样的错误。
额外问题:
哪一个是最好的方法,通过像上面那样扩展Map
或者创建一个具有Map
属性的新类:
class TestClass {
Map attr;
}
答案 0 :(得分:1)
Map是一个抽象类(参见:http://api.dartlang.org/docs/releases/latest/dart_core/Map.html),它有一个工厂(查看源代码)创建一个默认的HashMap实现。
(您可以在编辑器中看到大部分内容:右键单击&#34; map&#34;然后选择&#34;打开声明&#34;)
简单地调用工厂会导致HashMap不是您类的子类的错误。
但我认为简单地继承HashMap会给你你想要的东西,因为那是默认的实现。
对于你的额外问题:子类化一个hashmap通常是一个反模式(至少在Java中,如果有关于Dart的东西使它更安全,请纠正我)并且很少你想做什么,特别是如果包含将起作用。我推荐这个。