我在任何地方都找不到这个问题的答案,所以我希望有人能帮助我。我预计我所要求的事情是不可能的,但我想确认一下。首先,一个枚举示例...
public enum StatusCode {
SUCCESS(0), GENERAL_ERROR(999), CONNECTION_TIMEOUT_ERROR(1337);
private int statusCode;
private StatusCode(int statusCode) {
this.statusCode = statusCode;
}
public int getStatusCode() {
return statusCode;
}
}
如您所见,我使用此枚举来强制执行特定的状态代码。我的问题是:有没有一种方法可以引用 StatusCode.SUCCESS 并让它返回与之关联的 int 值?与其详细说明我想做的事情,不如举这个例子:
public String getStatusMessage(int statusCode) {
// Map<Integer, String> that contains status messages
// return String for key statusCode
}
在此示例中,调用此方法的语法为 getStatusMessage(StatusCode.SUCCESS.getStatusCode())
。
有没有办法将其缩短为getStatusMessage(StatusCode.SUCCESS)
?
我认为第二种方式看起来更干净,并且会使我的代码更具可读性。有任何想法吗?任何帮助深表感谢。提前致谢!
最佳答案
你的意思是这样吗?
public String getStatusMessage(StatusCode code) {
int status = code.getStatusCode();
String message = ...do stuff to get message :)
return message;
}
关于Java枚举: Return value other than String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9604811/