私は知っていますが、これを回避するためのほとんどのケースをカバーする単純な答えがあります。条件式に応じてJavaの `if`ステートメント内で変数が宣言されています。
私の場合、ユーザー入力情報を使用してゲームでCPUプレーヤーを作成したいと考えています。ユーザーが簡易モードを選択した場合は、EasyPlayer
クラスのインスタンスを宣言してインスタンス化します。それ以外の場合は、HardPlayer
クラスのインスタンスを宣言してインスタンス化します。いずれにせよ、変数の具体的な名前は "cpu"でなければならず、残りのコードは無差別に "cpu"で動作します。つまり、これらがどのように動作するかの相違点は、異なるクラスに組み込まれており、CpuPlayer
クラスをサブクラス化しています。
// Set the opponent.
if (difficulty == 0){
EasyPlayer cpu = new EasyPlayer(num_rounds);
}
else{
HardPlayer cpu = new HardPlayer(num_rounds);
}
これは私に絶えず迷惑cannot find symbol
エラーを与える:
は、だからここのコードです。私が読むことから、スコープの問題とそれが決して起こらない可能性のために、このような条件の中で宣言を行うことはできないという皆が言います。
もしそうなら、ユーザー入力に基づいて2つの異なるクラスの1つとして1つの変数を代わりに宣言する正しい方法は何ですか?
+1あなたがここにいる解決策が不十分であり、助けに来ていることを認識してください。 –