でそれらを使用します。は、Javaの定数を定義し、私はこれに似たクラス持つコレクション
class DomainTypes {
public static final DomainType DOMAIN_1 = DomainType.of("example1.com");
public static final DomainType DOMAIN_2 = DomainType.of("example2.com");
public static final DomainType DOMAIN_3 = DomainType.of("example3.com");
public static Set<DomainType> getDomainTypes() {
return ImmutableSet.of(
DOMAIN_1, DOMAIN_2, DOMAIN_3
);
}
}
をしかし、これはエラーが発生しやすくなります。誰かが新しい定数としてドメインを追加した場合、それをgetDomainTypes()
メソッドに追加することを忘れることがあります。可能であれば、私は反射を使用したくありません。
私はDomainTypeクラスを別のモジュール(jar)に持つ必要があります - APIモジュールの種類 - DomainTypesよりもdns-apiモジュールを考えてみましょう。 DomainTypesはむしろ構成であり、dns-apiモジュールに依存するweb-appモジュールにあります。列挙型では、ロジックを実装したオブジェクトから構成を分離できず、別のアプリケーションでdns-apiモジュールを再利用することができませんでした。だから私はenum
を使用してその私のための解決策ではないと思う。
はとして列挙し、ドメインを使用しますそこにはプライベートフィールドがあります。次に、 'BlubEnum.values()'を使うことができます。 – Tom
定数を持つクラスではなく、['enum'](https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)を使用できます。列挙型は自動的に 'enum'のすべての定数を与える' values() 'メソッドを持っています。 – Jesper
また、 'enum'には' EnumSet'のようなクラスがあり、それらの値を非常に効率的なセットとして得ることができます。 – RealSkeptic