列挙型の 3 つのパラメーターを持つコンストラクターがあります。
public SomeClass(EnumType1 enum1,EnumType2 enum2, EnumType3 enum3)
{...}
タイプ enum の 3 つのパラメーターは、可能なすべての値と組み合わせることはできません。
例:
EnumType1.VALUE_ONE、EnumType2.VALUE_SIX、EnumType3.VALUE_TWENTY は有効な組み合わせです。
ただし、次の組み合わせは無効です。
EnumType1.VALUE_TWO、EnumType2.VALUE_SIX、EnumType3.VALUE_FIFTEEN
各 EnumTypes は、どの値と組み合わせることができるかを認識しています。
EnumType1 と他の 2 つは、 isAllowedWith() メソッドを実装して、次のようにチェックします。
public enum EnumType1 {
VALUE_ONE,VALUE_TWO,...;
public boolean isAllowedWith(final EnumType2 type) {
switch (this) {
case VALUE_ONE:
return type.equals(Type.VALUE_THREE);
case VALUE_TWO:
return true;
case VALUE_THREE:
return type.equals(Type.VALUE_EIGHT);
...
}
}
私のプロジェクトでは、実行時に組み合わせが常に正しいことが非常に重要であるため、コンパイル時にそのチェックを実行する必要があります。
ユーザー定義の注釈でそのチェックを実行する可能性があるのだろうか?
すべてのアイデアは高く評価されます:)