是否可以使用我自己的特定列表扩展通用列表.就像是:
class Tweets<Tweet> extends List<T>
Run Code Online (Sandbox Code Playgroud)
如果我想用自己的构造函数构造,构造函数将如何显示:
Datasource datasource = new Datasource('http://search.twitter.com/search.json');
Tweets tweets = new Tweets<Tweet>(datasource);
Run Code Online (Sandbox Code Playgroud)
那么如何调用父构造函数,因为这不是在扩展类中完成的?
DartList是一个带有工厂的抽象类。
我认为你可以这样实现:
class Tweet {
String message;
Tweet(this.message);
}
class Tweets<Tweet> implements List<Tweet> {
List<Tweet> _list;
Tweets() : _list = new List<Tweet>();
add(Tweet t) => _list.add(t);
addAll(Collection<Tweet> tweets) => _list.addAll(tweets);
String toString() => _list.toString();
}
main() {
var t = new Tweet('hey');
var t2 = new Tweet('hey');
var tl = new Tweets();
tl.addAll([t, t2]);
print(tl);
}
Run Code Online (Sandbox Code Playgroud)
似乎没有任何直接的方法可以做到这一点,并且看起来还有一个错误票:http://code.google.com/p/dart/issues/detail ?id=2600
更新:一种方法是使用noSuchMethod()和转接呼叫。
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |