151 votes

Constructeurs multiples de Dart

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;
}

Puis 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 à trouver une solution de contournement en créant un constructeur avec un tas d'arguments non requis.

Existe-t-il un moyen efficace de résoudre ce problème ?

1 votes

À titre de commentaire sans rapport avec le sujet, vous devriez probablement utiliser des récupérateurs pour color et name pas getColor() et getName() méthodes. Si les valeurs ne changent jamais, vous pouvez utiliser un seul champ public comme class Player { final String name; final int color; Player(this.name, this.color); } .

0 votes

Je suis nouveau sur Dart et pas encore habitué à ce genre de normes, mais merci, je vais essayer.

0 votes

C'est aussi à ce moment-là que l'on se rend compte de tout ce que les débutants ont fait pendant la surcharge des constructeurs de Java/C#... >> "Il faut du temps pour démêler la beauté derrière Java & C# " !

0voto

Genius Points 1104

Comme Günter Zöchbauer déjà précisé dans sa réponse :

Vous ne pouvez avoir qu'un seul constructeur non nommé, mais vous pouvez avoir un nombre quelconque de constructeurs nommés supplémentaires dans Flutter.

  • En utilisant un constructeur nommé, vous pouvez créer plusieurs constructeurs dans la même classe.
  • Chaque constructeur aura un nom unique. Pour que vous puissiez identifier chacun d'entre eux.

Syntaxe pour Constructeur nommé :

class_name.constructor_name (arguments) { 
   // If there is a block of code, use this syntax

   // Statements
}

or

class_name.constructor_name (arguments); 
   // If there is no block of code, use this syntax

Pour en savoir plus Cliquez ici

Connaître les différents types de constructeurs dans Flutter Cliquez ici

2 votes

Veuillez préciser si je me suis trompé quelque part afin que je puisse améliorer ou sinon supprimer la réponse.

0voto

J'ai trouvé une solution pour résoudre ce problème qui dépend du type de données que l'on passe à la fonction.

Essayez ceci Solution

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X