Class 我想在一些Dart类中添加我自己的方法

Class 我想在一些Dart类中添加我自己的方法,class,extend,dart,implements,Class,Extend,Dart,Implements,我尝试简单地“扩展”Map类失败,因为List是一个接口,不能扩展,但必须实现 目标只是在一些现有类的基础上添加一些方法,例如: List.add_unique(item),我只想在该项不存在时追加它。这可以很好地通过和添加附加来完成=带有列表的null逻辑。indexOf(项)!=-1(其中未找到-1)。这将是一个很好且易于理解的示例 但是,如何以最短、总体开销最小的方式实现这一点?我想我可以随意打字——至少从一开始是这样 我还希望添加和/或修改其他方法,例如Map类的.add()方法 我已经

我尝试简单地“扩展”Map类失败,因为List是一个接口,不能扩展,但必须实现

目标只是在一些现有类的基础上添加一些方法,例如:

List.add_unique(item),我只想在该项不存在时追加它。这可以很好地通过和添加附加来完成=带有列表的null逻辑。indexOf(项)!=-1(其中未找到-1)。这将是一个很好且易于理解的示例

但是,如何以最短、总体开销最小的方式实现这一点?我想我可以随意打字——至少从一开始是这样

我还希望添加和/或修改其他方法,例如Map类的.add()方法

我已经很多年没有处理过接口了,我想在我的项目的这一方面可能会有一个更简单的方法来开始


谢谢

我也遇到了这个问题。目前最好的解决方法是创建一个转发所有方法调用的类。比如:

然后可以从ListProxy继承并重写或添加所需的任何方法

如果人们觉得这足够有用,也许我们可以把它放在自己的酒吧包里。不过,我希望我们可以修复dart:core,因此它支持从所有核心集合类继承


顺便说一句,如果您试图覆盖Map中的一个方法,那就容易多了:您可以
导入'dart:coreimpl'
和extend
HashMapImplementation

投票赞成这个问题:它允许您扩展本机类。混入即将到来,也应该会有所帮助。此外,随着显式接口的消失,List将成为一个抽象类。我已经能够使用“帮助器函数”完成我需要的工作,他们不是很有野心,但确实在帮助我。在Ruby中我什么都不会做,但Dart就是Dart,一些专家鼓励我走这条路。显然不一样。