java - enum とは何ですか? なぜそこにあるのでしょうか? どのように使用するのですか?
我想大声告诉你
我想大声告诉你 2017-05-17 10:01:51
0
7
695

実際の現象

  • enum の使い方は大体わかったけど、ソースに戻りたい(本質を議論する)

予想される現象

  1. 独断的な抜粋文書形式の回答は拒否します (時間は重要です)

  2. enum を深く理解したいと考えています (少なくとも実際の運用環境で多くのコードを書いてきました)!

注: 私はプログラミングの初心者ではありません。一部の基本的な概念には一般科学を必要としません。

###コンテクスト###

    議論の対象は Java の enum です (実際には enum は概念です)
  • 具体的には、キーワード enum について説明します
我想大声告诉你
我想大声告诉你

全員に返信(7)
小葫芦
  1. は、型安全性を確保するために、注文ステータス、証明書タイプなどの型定数を定義する代わりに使用できます
    たとえば、通常の String クラスが注文ステータスを表すために使用される場合、呼び出し元は、次のような String を渡すことができます。呼び出し先への注文ステータスの範囲内にありません。この種のエラーはコンパイル段階では見つかりません

  2. Java 列挙クラスは本質的に複数のインスタンス パターンの実装であり、シングルトン パターンは複数のインスタンス パターンの特殊なケースです

  3. 列挙型クラスは継承できません。たとえば、enumA extends enumB は許可されません

  4. 内部型を順番に持つ列挙クラスは Comparable インターフェイスを実装します

いいねを押す +0
左手右手慢动作

Effective Java の第 6 章に詳細な説明があるので、確認してください

いいねを押す +0
小葫芦

enum は単に注釈情報を持つ int 型と考えることができます。

いいねを押す +0
漂亮男人

あなたの状況にショックを受けているので、私の個人的な考えをお話します

enum は、アクセス可能な定数とパブリックな定数を含む特別なクラスとみなすことができます。実際、それらはクラスの読み込みプロセス中に定数プールに解析されます。セマンティックな観点から、定数を使用するときにその意味を表示しやすくします。同時に、定数の構築、特定の型のすべての定数のループ、switch ステートメントでの使用なども容易になります。

いいねを押す +0
習慣沉默

この質問は範囲が広すぎるため、答えるのが困難です。
enum は本質的に java.lang.Enum を継承するクラスであり、シングルトンや入力を制限する必要がある場合に使用できます

いいねを押す +0
洪涛

まず、私の個人的な表面的かつ主観的な理解をお話しし、いくつかのアイデアを述べさせてください。

列挙型の目的は次のとおりだと思います:

  • 定数を管理する手段を提供します

  • 名前空間。

いいねを押す +0
左手右手慢动作

enum の存在自体は、定数の可読性の問題を解決するためのものです。enum が存在しない前は、状態をマークするために int 型がよく使用されていましたが、1、2 などの可読性はあまり良くありませんでした。新しい定数が追加されました。長いステートメントを書くために、この一連の問題を解決するためにこの関数が jdk5 に追加されました。その本質は単なるクラスですが、列挙型を作成するときに、values()、ordinal() などのメソッドを自動的に生成し、switch ステートメントをサポートし、定数が登場するシナリオをカバーして、直接定義するよりも使用する方が便利です。定数。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート