列挙型に整数フィールドがあり、各列挙型定数が一意のフィールド値を持つようにしたいとします。それについてどうやって行きますか?列挙型フィールドの値が一意であることを確認する方法は?
答えて
は(Unique enum member valuesに触発さ)、静的初期化子を使用します
enum MyEnum {
CONST_1(5); //...
private int code;
public MyEnum(int code) {
this.code = code;
}
public int getCode() {
return this.code;
} // ...
static {
// check that the codes are unique.
if (Arrays.stream(MyEnum.values()).map(MyEnum::getCode).distinct()
.count() != MyEnum.values().length)
throw new IllegalStateException("Codes aren't unique.");
}
}
すべての列挙型の値が初期化された後に 'static'ブロック*が*実行されることが保証されていますか? –
私はそれが実行時に行われるべきものではないと思います。単体テストはこの種のものを主張するように設計されています。あなたは列挙型のためにそれを行いますが、複数のものをチェックすることもできます。ランタイムコードはテストコードではありません。使用された構造が必要なチェックを提供しない場合、私はユニットテストを書く。 – davidxxx
@OliverCharlesworth私はちょうどそれを試み、それは働いた。しかし、私はより慎重に仕様を調べる必要があります。 –
- 1. プロセスレコードが一意であることを確認するActiveMQ
- 2. コンパイル時に列挙型の値を確認する
- 3. @RequestParamが列挙型のリストになることを確認する
- 4. 値の型フィールドを確認する
- 5. MediaStore.Audio.Media.ARTISTフィールドが空であることを確認する方法は?
- 6. Shoulda-matcher列挙型属性の一意性を検証する方法は?
- 7. 列挙型フィールドでモデルを生成する方法は?
- 8. Python2.7:オブジェクトの3Dリストが一意であることを確認する
- 9. 1つのクエリで2つの列の一意の値を確認する方法はありますか?
- 10. Ada:入力が列挙型かどうかを確認する方法
- 11. dictでキー(または値)が指定されたデータ型であることを確認する方法は?
- 12. JAX-RSの列挙型フィールドを手動でマップする方法
- 13. pyqt4 textddフィールドが空であることを確認する方法
- 14. ASP.NET Compare Validatorを使用してフィールドが一意であることを確認する
- 15. ユーザーがDataGridViewColumnの一意の値を入力したことを確認する方法は?
- 16. 列挙型の値をリレーショナルデータベース(SQLServer)に格納することの意味
- 17. デフォルト値で列挙型フィールドを作成するには?
- 18. 列挙型の値の型を保持する方法
- 19. 配列内にある任意の列挙型から生の値を取得する方法
- 20. テキストファイルの値が一意であるかどうかを確認する
- 21. cakephpのスコープで一意のフィールドを確認する
- 22. Railsアプリケーションで一意のフィールドを確認する
- 23. C + +で列挙型の値に変換する方法はありますか
- 24. 一意でない列挙値
- 25. 実行時に、私は列挙型のSystem.Typeをを持っており、BaseTypeはシステムであることを確認しているとき、私は列挙型のインスタンスを作成する方法を正確にワークアウト問題を抱えているのC#
- 26. 配列の最初の要素が一意であることを確認する
- 27. URLが有効であることを確認する方法
- 28. idTokenが有効であることを確認する方法
- 29. アソシエーションが有効であることを確認する方法
- 30. 列挙型プロパティの既定値を宣言する方法は?
を実際に、ええ - このQ/Aは、それが既存の問題+解答でカバーされていない何を追加するのでしょうか? –
@OliverCharlesworthこの質問は、2つの列挙型の定数間の1-1対応に関するものです。答えの点では、その答えは他のenum型を扱うときにのみ適用できます。 –