19.4values()の謎
列挙型クラスを逆コンパイルすると、values()はコンパイラによって追加されたstatic()メソッドです。コンパイラは列挙型クラス (enum) を最終クラスとしてマークするため、enum クラスを継承することはできません。
すべての enum クラスは java.lang.Enum クラスを継承します。 Java は多重継承をサポートしていないため、enum クラスは他のクラスを継承できません。ただし、新しい enum を作成するときに、1 つ以上のインターフェイスを同時に実装できます。
EnumSetと同様に、enumインスタンスの定義順序によってEnumMap内での順序が決まります。
定数固有のメソッド。
複数派遣。
対応する enum インスタンスを通じて、そのインスタンス上のメソッドを呼び出すことができます。これは、テーブル駆動コードとも呼ばれることがよくあります (前述のコマンド パターンとの類似性に注意してください)。
責任の連鎖。
1 つの方法は、コンストラクターを使用して、結果の「セット」をパラメーターとして各 enum インスタンスを初期化することです。 2 つを組み合わせると、クエリ テーブルに似た構造が形成されます。
関連記事:
Javaプログラミング思考を学ぶクラス(4) 第17章 - コンテナについて徹底解説
Javaプログラミング思考を学ぶクラス(5) 第18章 - Java IOシステム
以上がJavaプログラミング思考学習講座(6) 第19章 - 列挙型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。