[解決済み] Dart マルチプルコンストラクタ
2022-09-14 04:21:09
質問
dartでは、1つのクラスに対して複数のコンストラクタを作成することはできないのでしょうか?
私のプレイヤークラスで、次のコンストラクタがあった場合
Player(String name, int color) {
this._color = color;
this._name = name;
}
次に、このコンストラクタを追加してみます。
Player(Player another) {
this._color = another.getColor();
this._name = another.getName();
}
以下のようなエラーが出ます。
デフォルトのコンストラクタは既に定義されています。
私は、必要でない引数をたくさん持つ1つのコンストラクタを作成することによる回避策を探しているわけではありません。
これを解決する良い方法はありますか?
どのように解決するのですか?
1つしかない 無名 コンストラクタ を持つことができますが、さらにいくつでも という名前の コンストラクタ
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(String name, int color) {
this._color = color;
this._name = name;
}
から
Player(this._name, this._color);
名前付きコンストラクタは、名前の最初に
_
class Player {
Player._(this._name, this._color);
Player._foo();
}
コンストラクタに
final
フィールドのイニシャライザーリストが必要です。
class Player {
final String name;
final String color;
Player(this.name, this.color);
Player.fromPlayer(Player another) :
color = another.color,
name = another.name;
}
関連
-
[解決済み] フラッターサークルデザイン
-
[解決済み] FlutterのBuildキャッシュをクリアする方法は?
-
[解決済み] DartでSingletonを構築する方法とは?
-
[解決済み】Flutterで数値入力フィールドを作成する方法は?
-
[解決済み] dartでenumにメソッドや値を追加する
-
[解決済み] InitStateメソッドで非同期データをロードする方法はありますか?
-
[解決済み] TextFieldのBorder Colorを変更できない。
-
[解決済み] Dartで "new "キーワードを使う必要があるのか?
-
[解決済み] タイムスタンプの変換
-
[解決済み] ローカルフラッターパッケージを別のフラッターアプリケーションで使用するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] フラッターサークルデザイン
-
[解決済み] FlutterのBuildキャッシュをクリアする方法は?
-
[解決済み】Dartで日付をフォーマットする方法とは?
-
[解決済み] dartでenumにメソッドや値を追加する
-
[解決済み] "extends" 対 "implements" 対 "with" (拡張する)。
-
[解決済み] Flutter SVG レンダリング
-
[解決済み] InitStateメソッドで非同期データをロードする方法はありますか?
-
[解決済み] Flutter initState メソッドでコンテキストを取得する
-
[解決済み] TextFieldのBorder Colorを変更できない。
-
[解決済み] Dartで "new "キーワードを使う必要があるのか?