0

Javaを使用して、オブジェクトプロパティを特定の値に制限するにはどうすればよいですか?「場所のタイプ」を表すJavaオブジェクトを作成したいのですが、クラスの使用を、考えられるすべてのタイプを表す約100個の文字列のみに制限したいですか?このためのデザインパターンは何ですか?

私が考えることができるのは、文字列配列リストを作成することだけです。ユーザーがオブジェクトをインスタンス化するたびに、リスト全体を反復処理して一致するものを探します。それは私にはちょっとハックのように思えますが、私はそれを正しくやりたいと思っています。

4

4 に答える 4

4

Javaの列挙を使用するのはどうですか?オブジェクトはその列挙型のタイプだけで決まり、列挙型にある100個ほどの文字列に制限されます。

于 2012-08-14T01:55:06.293 に答える
1

文字列または列挙には、許可された値のHashSet(ルックアップが高速で、含まれているかどうかのみを知りたい)を使用できます。

于 2012-08-14T01:55:34.577 に答える
1

100程度の値の固定セットの場合、enumタイプが最良の答えです。ただし、いくつかの注意点があります。

  • 値のセットが固定されていない場合...コードにハードワイヤードできる範囲で...enumクラスは機能しません。enumJavaには、再コンパイルなどを行わずに既存の列挙型クラスに新しい値を追加できるクラスの形式はありません。

  • 値の数が非常に多い場合、enumクラスは、JVM仕様によって課せられる1つ以上の制限に遭遇します。たとえば、enumクラスのコンパイラによって生成される静的初期化コードは、64Kを超えるバイトコードで構成することはできません。

于 2012-08-14T02:29:43.453 に答える
0

別の考えは、有界セットなので、それらの文字列の列挙型を作成することです。オブジェクトプロパティを列挙型にします。それなら心配ありません。

于 2012-08-14T01:55:39.943 に答える