この記事では、java に関する関連知識を提供します。主に、列挙型の概念、列挙型の長所と短所、一般的なメソッドなど、列挙型の使用に関連する問題を紹介します。皆様のお役に立てれば幸いです。
推奨学習: 「java チュートリアル 」
列挙型は Java1.5 です。導入された新機能は、キーワード enum を使用して列挙型クラスを定義することです。列挙クラスは特別なクラスです。通常のクラスと同様に、コンストラクタを使用し、メンバー変数とメソッドを定義し、1 つ以上のインターフェイスを実装することもできます。ただし、列挙クラスは他のクラスを継承できません。
効果的 Java では、列挙型を使用してすべての定数コードを置き換えることをお勧めします。次の理由:
(1) 型チェック、妥当性チェック
(2) 列挙型はクラスとして独自の属性を持つことができます (通常は定数である必要がありますが、私はそのような状況に遭遇したことがありません)これは当てはまらない場合) ) と独自のメソッド (そうでない場合は switch を使用して書き込むことしかできず、実際には原則に違反します)
(3) 定数と比較すると、考えられるすべての戻り値を直接知ることができます。ドキュメントやソースコードを見なくても済むため、コーディングに便利です。
しかし、問題は最初の点であり、実は分散環境においては(1)が避けられないわけではありません。ビジネス処理においてインターフェイスの戻り値に未定義の内容が含まれることが許可されている場合は、デシリアライズ中に例外がスローされるべきではなく、(1) にこだわる必要はありません。同時に、(2)と(3)の点から判断すると、列挙型の使用範囲を制限することの影響は非常に大きいです。独自の属性とメソッドを持つ列挙型をコードと他のメソッドの組み合わせに書き直すには、より多くのコードが必要となり、コード破損の程度が大幅に増加します。
(1) Java は単一継承をサポートしているため、列挙型は他のクラスを継承できません;
(2) 実際には、誰もがクライアントとサーバーのバージョンが一致しない場合、デシリアライズ例外が発生することを知っているため、「Alibaba JAVA 開発マニュアル」ではこの問題を可能な限り回避するように対処しています。例外が発生するため、列挙型を return として定義することは禁止されています。価値観。
ビジネス開発において、ビジネス ロジックの複雑さは避けられません。ビジネスが発展するにつれて、要件はますます複雑になります。この場合、コード内に必然的に if-else が多くなります。
コード内に if-else が多すぎると、可読性と保守性に大きな影響を及ぼし、コードが非常に低く見えます。
列挙はこの問題を解決できます;
列挙とスイッチに関しては、比較的単純なトピックです。条件判断にスイッチを使用する場合、条件パラメーターは通常、整数と文字のみです。 。 タイプ。列挙型は実際に switch でサポートされており、Java 1.7 以降では、switch は文字列もサポートします。ここでは、スイッチと列挙型の使用方法について簡単に説明します
static void testSwitch(Week week){ switch (week){ case MONDAY: System.out.println(week.getMeaning()); break; case TUESDAY: System.out.println(week.getMeaning()); break; case WEDNESDAY: System.out.println(week.getMeaning()); break; case THURSDAY: System.out.println(week.getMeaning()); break; case FRIDAY: System.out.println(week.getMeaning()); break; case SATURDAY: System.out.println(week.getMeaning()); break; case SUNDAY: System.out.println(week.getMeaning()); break; default: System.out.println("您输入有误"); break; }}
# 推奨される学習: "javalearningtutorial >>
以上がJava 列挙型の使用に関する詳細な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。