実装するリストクラスを決定するために使用する文字列変数type
を使用するメソッドを記述しています。このメソッドは、switch文を使用して、変数名newList
を使用して適切なタイプのリストを作成します。switchステートメント内にオブジェクトを作成する際に問題が発生しました。後のコードで「オブジェクトを解決できません」(java)
switch文は次のようになります。
switch (type) {
case "unsorted": {
UnsortedList newList = new UnsortedList();
break;
}
case "sorted": {
SortedList newList = new SortedList();
break;
}
case "new sorted": {
NewSortedList newList = new NewSortedList();
break;
}
default: {
System.out.print("Something went wrong! List type unrecognized. I have initialized newList to be an unsorted list.");
UnsortedList newList = new UnsortedList();
}
}
これによると、私はnewList
は常に原因switch文のデフォルトの場合にインスタンス化されると信じています。しかし、私はコンパイルエラー "newListは解決できません"が表示されます。
これを防ぐためにできることはありますか?
'newList'のスコープは個々の' {} 'ブロックです。それはどこにも見えません。 –
スイッチ内でリストを作成するので、外からアクセスできません。範囲外です – azro
どのように 'newList'を使用していますか?これらのクラスは共通のインターフェイスを共有していますか? – shmosel