8

私は列挙型を通じてシナリオを読んで実装していました。インスタンスなしで列挙型を作成できることがわかりました。そのようなの実用的な用途は何Enumですか? 次にEnum、インターフェイスを実装することもできますが、すでに class を拡張しているため、クラスを拡張することはできませんEnumEnumインスタンスなしで を作成することの実際的な利点は何ですか? ベン

4

3 に答える 3

11

ゼロメンバー列挙型は、実際には、Java コミュニティの特定のセグメント (最も注目すべきはPeter Lawrey ) によって使用されるユーティリティ クラスのイディオムです。これらは、クラスがインスタンス化またはサブクラス化されないことを保証する最も簡潔で、間違いなく最もクリーンな方法です。

当然、そのような列挙型にはインスタンスメソッドはありません。静的なもののみ。

于 2013-07-22T17:04:36.183 に答える
2

Enumclassまたはのような参照型interfacesです。これは、「実装ではなくインターフェースへのプログラム」という原則をうまく適用できることを意味します。

于 2013-07-22T17:14:45.083 に答える
0

のメンバーは、enum宇宙の終わりまで必ずしも固定されていません。バイナリの比較可能性を損なうことなく、新しいメンバーを追加できます。enumしたがって、現時点ではインスタンスがなく、後で追加される可能性のある概念をモデル化するために が作成されると想像できます。

enum絶対にインスタンスが存在しないことがわかっている概念に対して が作成される可能性はありますか? たとえばenum NegativeNaturalNumber{}?プログラムで何らかの目的を果たすことができますか? 確かなことは言えません。

于 2013-07-22T18:59:20.260 に答える