[解決済み】Java:サブクラス下のenumでswitchステートメントを使用する
2022-02-14 21:30:05
質問
最初に断っておきますが、私はC#のenumの方がずっと慣れていて、javaのenumはかなり混乱しているように思えます。
ご覧のように、次の例ではswitch文@enumsを使おうとしていますが、何をやってもエラーになります。
私が受けたエラーは
修飾されたケースラベル
SomeClass.AnotherClass.MyEnum.VALUE_A
は、非限定列挙型定数VALUE_A
そのことは、私 かなり エラーは理解できますが、enumが別のサブクラスにあるため、VALUE_Aを書くことができません。この問題を解決する方法はあるのでしょうか?また、なぜJavaでこのようなことが起こるのでしょうか?
//Main Class
public class SomeClass {
//Sub-Class
public static class AnotherClass {
public enum MyEnum {
VALUE_A, VALUE_B
}
public MyEnum myEnum;
}
public void someMethod() {
MyEnum enumExample //...
switch (enumExample) {
case AnotherClass.MyEnum.VALUE_A: { <-- error on this line
//..
break;
}
}
}
}
解決方法は?
このように変更してください。
switch (enumExample) {
case VALUE_A: {
//..
break;
}
}
ヒントはエラーの中にある。を修飾する必要はありません。
case
ラベルに列挙されるのは、その値だけです。
関連
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] switch文の中で変数を宣言してはいけないのはなぜですか?
-
[解決済み] Stringでswitch文が使えないのはなぜですか?
-
[解決済み] JavaScriptで複数ケースを扱うSwitch文
-
[解決済み] Java enumとpublic static finalフィールドを持つクラスとでは、どのような利点がありますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み] StringBuilderをクリアまたは空にするにはどうすればよいですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み】javaで無効な文字定数
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない