真的不可能在dart中为一个类创建多个构造函数吗?
在我的播放器类中,如果我有此构造函数
Player(String name, int color) { this._color = color; this._name = name; }
然后,我尝试添加此构造函数:
Player(Player another) { this._color = another.getColor(); this._name = another.getName(); }
我收到以下错误:
默认构造函数已经定义。
我不是通过创建带有一堆不需要的参数的构造函数来寻找解决方法。
有解决这个问题的好方法吗?
您只能有一个 未命名的 构造函数,但可以有任意数量的其他已 命名的 构造函数
class Player { Player(String name, int color) { this._color = color; this._name = name; } Player.fromPlayer(Player another) { this._color = another.getColor(); this._name = another.getName(); } } new Player.fromPlayer(playerOne);
该构造函数可以简化
至
Player(this._name, this._color);
命名构造函数也可以通过以 _
_
class Player { Player._(this._name, this._color); Player._foo(); }
具有final字段初始值设定项列表的构造函数是必需的:
final
class Player { final String name; final String color; Player(this.name, this.color); Player.fromPlayer(Player another) : color = another.color, name = another.name; }