Java 如何创建解析函数

Java 如何创建解析函数,java,enums,Java,Enums,我有课堂错误。 我有值错误代码。 我需要通过错误代码获取字符串 例如,int number=-2 Errors.Parse(number).toString(); 返回值#-2#用户名已在使用。 public enum Errors { UNKNOWN_ERROR(-1, "Unknown error"), LOGIN_ALREADY_EXISTS(-2, "The username is already in use."), LOGIN_O

我有课堂错误。 我有值错误代码。 我需要通过错误代码获取字符串

例如,
int number=-2

Errors.Parse(number).toString();
返回值
#-2#用户名已在使用。

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;
        }
    }

您必须循环枚举的值,并根据给定的错误代码(num)分别检查每个枚举的错误代码

比如:

public static Errors Parse(int num) {

  for(Errors error: Errors.values() ) {
     if (error.getErrorCode() == num ) {
         return error;
     }
  }
  return null;

}

您必须循环枚举的值,并根据给定的错误代码(num)分别检查每个枚举的错误代码

比如:

public static Errors Parse(int num) {

  for(Errors error: Errors.values() ) {
     if (error.getErrorCode() == num ) {
         return error;
     }
  }
  return null;

}

您可以在
错误
枚举中为其创建
映射。使用错误代码查找
错误
枚举。通过如下调用查找值:
Errors.getErrorForCode(1)

私有静态最终地图所有错误;
静止的
{
allErrors=newhashmap();
对于(错误:values())
{
allErrors.put(error.getErrorCode(),error);
}
}
公共静态错误getErrorForCode(int errorCode)
{
Errors error=allErrors.get(errorCode);
如果(错误==null)
{
抛出新的IllegalArgumentException(“未知错误代码”);
}
返回误差;
}

您可以在
错误
枚举中为其创建一个
映射。使用错误代码查找
错误
枚举。通过如下调用查找值:
Errors.getErrorForCode(1)

私有静态最终地图所有错误;
静止的
{
allErrors=newhashmap();
对于(错误:values())
{
allErrors.put(error.getErrorCode(),error);
}
}
公共静态错误getErrorForCode(int errorCode)
{
Errors error=allErrors.get(errorCode);
如果(错误==null)
{
抛出新的IllegalArgumentException(“未知错误代码”);
}
返回误差;
}
添加类似的内容(尤其是经常使用解析方法时):

private static Map errorMap=new HashMap();
静止的{
对于(错误:Errors.values()){
errorMap.put(error.getErrorCode,error);
}
}
公共静态字符串解析(整数){
返回errorMap.get(number.toString();
}
添加类似的内容(尤其是经常使用解析方法时):

private static Map errorMap=new HashMap();
静止的{
对于(错误:Errors.values()){
errorMap.put(error.getErrorCode,error);
}
}
公共静态字符串解析(整数){
返回errorMap.get(number.toString();
}

@simply denis,将此方法放入
错误中
@simply denis,将此方法放入
错误中
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();
}