Est-il vraiment impossible de créer plusieurs constructeurs pour une classe dans dart?
dans ma classe de joueur, si j'ai ce constructeur
Player(String name, int color) {
this._color = color;
this._name = name;
}
Ensuite, j'essaie d'ajouter ce constructeur:
Player(Player another) {
this._color = another.getColor();
this._name = another.getName();
}
Je reçois l'erreur suivante:
Le constructeur par défaut est déjà défini.
Je ne cherche pas une solution de contournement en créant un constructeur avec un tas d'arguments non requis.
Y a-t-il un bon moyen de résoudre ce problème?
Vous ne pouvez avoir qu'un seul unnamed _ constructeur , mais vous pouvez avoir un nombre quelconque de constructeurs _ { named]
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);
Ce constructeur peut être simplifié
Player(String name, int color) {
this._color = color;
this._name = name;
}
à
Player(this._name, this._color);
Les constructeurs nommés peuvent aussi être privés en commençant le nom avec _
class Player {
Player._(this._name, this._color);
Player._foo();
}
Si vous avez déjà utilisé un constructeur avec des paramètres dans le projet et que vous avez maintenant compris qu'il vous faut un constructeur sans paramètres par défaut, vous pouvez ajouter un constructeur vide.
class User{
String name;
User({this.name}); //This you already had before
User.empty(); //Add this later
}
Si votre classe utilise les paramètres finaux, la réponse acceptée ne fonctionnera pas. Cela fait:
class Player {
final String name;
final String color;
Player(this.name, this.color);
Player.fromPlayer(Player another) :
color = another.color,
name = another.name;
}