Java枚举: Return value other than String

标签 java enums

我在任何地方都找不到这个问题的答案,所以我希望有人能帮助我。我预计我所要求的事情是不可能的,但我想确认一下。首先,一个枚举示例...

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/

相关文章:

java - Camel - 使用 end()

java - 我如何从一个表中调用 2 行以显示在 jtable 中

java - 如何将一个 ArrayList 添加到另一个 ArrayList 中?

java - 如何比较枚举值?

objective-c - 我们如何将一个可选的枚举值从 Swift 返回到 Obj-C?

java - 安卓枚举 : generate AAR binary with R8 on and throws "Function invocation ' name( )'" exception in client app

java - 为什么连续两次调用同一方法会产生不同的执行时间?

Java 8 的流 : why parallel stream is slower?

java - 当我们只给出 1 个参数值时,如何获取某个枚举实例?

arrays - Swift 枚举作为数组的索引