興味深い要件があります。フォームの大きな列挙型があります
public enum BpcCmsError {
ERROR_TYPE_1("Error message 1"),
ERROR_TYPE_2("Error message 2"),
ERROR_TYPE_3("Error message 3");
private int errorCode;
private final String errorMessage;
public static final int ERRORCODE_BASE = 100;
数字から始めてカウントアップする一意のエラーコードを割り当てる必要があるため、コンストラクターがあります。
private BpcCmsError(String message) {
this.errorMessage = message;
}
と静的ブロック
static {
int code = ERRORCODE_BASE;
for (BpcCmsError error : EnumSet.allOf(BpcCmsError.class)) {
error.errorCode = ++code;
}
}
これは問題なく動作します。
ただし、理想的には次のように、これらのエラー コードを割り当てる際に柔軟性を追加する必要があります。
ERROR_TYPE_1("Error message 1"),
ERROR_TYPE_2("Error message 2"),
ERROR_TYPE_3(200,"Error message for code");
これは、引数が 2 つのコンストラクターによって、後続のエラー コードが最初のパラメーターの値から開始されるようにするためです。私の場合、エラー コードは 100、101、200、201 などになります。もちろん、このジャンプが許可されているかどうかを確認する必要があります。たとえば、すでに 200 を超えている可能性があります。Javaで列挙型を使用してこれを達成する方法に関するヒントはありますか?