enumとswitchの併用ケース
2022-02-24 02:24:02
enumとswitchのケースを組み合わせて使用します。
enumとswitch caseを組み合わせて使用しているときに、次のエラーが発生しました: "enumスイッチケースのラベルは、列挙定数の非限定名でなければなりません".enumスイッチケースのラベルは、列挙定数の非限定名でなければなりません。コードは以下の通りです。
public enum EnumType {
type1("type1"), type2("type2"), type3("type3");
private String type;
EnumType(String type) {
this.type = type;
}
public String getType() {
return type;
}
}
@OnClick(R.id.btn_test_enum_with_switchcase)
public void onViewEnumWithSwitchCaseClicked() {
EnumType enumType = EnumType.type1;
testEnum(enumType);
}
private void testEnum(EnumType type) {
switch (type) {
case EnumType.type1:
Log.e("type1:", type.getType());
break;
case EnumType.type2:
Log.e("type2:", type.getType());
break;
case EnumType.type3:
Log.e("type3:", type.getType());
break;
default:
break;
}
}
エラーメッセージはこうです。enum switch case label must be the unqualified name of an enumeration constant (列挙型スイッチ・ケースのラベルは列挙型定数の非限定名でなければなりません)
エラーのヒントによると、switchケースで使用する場合、enum型はその型であるenum定数値の定数を修飾してはならないとのことです。
コードを以下のように変更します。
private void testEnum(EnumType type) {
switch (type) {
case type1:
Log.e("type1:", type.getType());
break;
case type2:
Log.e("type2:", type.getType());
break;
case type3:
Log.e("type3:", type.getType());
break;
default:
break;
}
}
OK、変更は完了です。
関連
-
呼び出しは、ユーザーによって拒否される可能性のある許可を必要とします。
-
GPSプロンプトの問題は、Callがユーザーによって拒否される可能性のある許可を必要とすることです:コードは、明示的にsをチェックする必要があります。
-
ADBサーバーがACKしなかった
-
Eclipse パッケージエクスプローラーの開き方
-
Android RecyclerViewで「アダプターが接続されていません」と表示され、問題解析がスキップされる。
-
エラーを解決する SSLピアが正しくシャットダウンされない
-
Androidのellipsizeプロパティ(余分なテキストは楕円で表示される)
-
java.lang.SecurityException を解決してください。android パッケージは 10065 に属していません。
-
Android TextViewの自動改行問題
-
android studioエミュレータの起動に失敗しました
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Android のリストビューでアダプタを使用しているときに null オブジェクトの参照に対して仮想メソッド xxxxxxxx を呼び出そうとする問題が解決されました。
-
Android プロジェクト コンパイル時に com.android.builder.internal.aapt.v2.Aapt2Exception に遭遇しました。AAPT2 エラー: 詳細はログを確認してください。
-
ProcessBuilderExceptionCreateProcess error=2, ϵͳÕҲ "μ½ָ¶".
-
ERROR: x86 エミュレーションには現在ハードウェアアクセラレーションが必要です。
-
Error:Execution failed for task ':app:compileDebugJavaWithJavac' 根本的な解決方法
-
Android Studioの解決策:xxxは囲むクラスではありませんエラー
-
Android ViewPager のエラーです。NULLオブジェクトの参照で仮想メソッドxxxを呼び出そうとした
-
アプリケーションがメインスレで仕事をしすぎている可能性がある
-
スピナー実装のダウンメニューとイベントリスニング(グラフィックモード)
-
appの実行エラー:ターゲットデバイスが見つかりませんでした。