我有班级错误。 我有值errorCode。 我需要通过errorCode获取字符串。
示例,int number = -2;
Errors.Parse(number).toString();
返回值#-2#The username is already in use.
public enum Errors {
UNKNOWN_ERROR(-1, "Unknown error"),
LOGIN_ALREADY_EXISTS(-2, "The username is already in use."),
LOGIN_OR_PASSWORD_NOT_CORRECT (-3, "LOGIN_OR_PASSWORD_NOT_CORRECT"),
NULL_POINTER (-4,"Null pointer exception"),
NOT_CORRECT_DATA (-5,"NOT_CORRECT_DATA");
private final int errorCode;
private final String message;
private Errors(int errorCode, String message) {
this.errorCode = errorCode;
this.message = message;
}
public int getErrorCode() {
return errorCode;
}
public String getMessage() {
return message;
}
@Override
public String toString() {
return "#" + errorCode + "#" + message;
}
}
答案 0 :(得分:6)
您必须循环枚举值,并根据给定的错误代码(num)单独检查每个的错误代码。
类似的东西:
public static Errors Parse(int num) {
for(Errors error: Errors.values() ) {
if (error.getErrorCode() == num ) {
return error;
}
}
return null;
}
答案 1 :(得分:0)
您可以在Map
枚举中为Errors
创建Errors
。使用错误代码查找Errors.getErrorForCode(1);
枚举。通过拨打这样的电话来查找价值:private static final Map<Integer, String> allErrors;
static
{
allErrors = new HashMap<Integer, String>();
for(Errors error : values())
{
allErrors.put(error.getErrorCode(), error);
}
}
public static Errors getErrorForCode(int errorCode)
{
Errors error = allErrors.get(errorCode);
if(error == null)
{
throw new IllegalArgumentException("Unknown error code");
}
return error;
}
{{1}}
答案 2 :(得分:0)
添加类似的内容(特别是如果经常使用parse方法):
private static Map<Integer, Errors> errorMap = new HashMap<Integer, Errors>();
static {
for(Errors error : Errors.values()) {
errorMap.put(error.getErrorCode, error);
}
}
public static String parse (int number) {
return errorMap.get(number).toString();
}