public enum DataMatchErrorCodes {
PAYLOAD_IS_EMPTY(100, "payload is empty or invalid payer"),
MULTIPLE_PROVIDERFOUND("zz", "Multiple Provider Found"),
PROVIDER_NOTFOUND(43, "provider not found"),
PROCESS_MSG_ERROR(53, "unable to process msg");
private final int errorCode;
private final String errorMessage;
private final String errorCodes;
DataMatchErrorCodes(int errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
DataMatchErrorCodes( String errorCodes, String errorMessage) {
this.errorCodes = errorCodes;
this.errorMessage = errorMessage;
}
答案 0 :(得分:0)
您必须在声明它们时为类级别的最终变量提供值,或者在构造函数中提供值。
如果使用第一个构造函数,则最终变量errorCodes
将保持未初始化状态,这是编译器错误。
类似地,如果您使用第二个构造函数,则最终变量errorCode
将保持未初始化状态。
您需要为所有三个变量提供值,或者将errorCodes
和errorCode
设为非最终值。
更新
而不是同时做这两个事情:-
private final int errorCode;
private final String errorCodes;
您可以拥有:-
private final Object errorCode;
此Object
类型将能够存储Integer
和String
。然后,您只需要1个构造函数:-
DataMatchErrorCodes(Object errorCode, String errorMessage)