java - Java中的键>值配对数组

标签 java arrays

我的 Go 东西中有一个类似的变量,并尝试像在 Java 中一样执行它;

var (
   STATUS = map[int]string{
      200: "OK",
      201: "Created",
      202: "Accepted",
      304: "Not Modified",
      400: "Bad Request",
      401: "Unauthorized",
      403: "Forbidden",
      404: "Not Found",
      405: "Resource Not Allowed",
      406: "Not Acceptable",
      409: "Conflict",
      412: "Precondition Failed",
      415: "Bad Content Type",
      416: "Requested Range Not Satisfiable",
      417: "Expectation Failed",
      500: "Internal Server Error",
   }
)

我尝试使用 HashMap 或其他数组内容,但不能,因为它是 Response 类的属性,并且必须在开头定义,例如;

package http;

class Response {
    // here define filling it e.g STATUS = new Array(200, "OK", ...) etc..
    ... STATUS ... 
}

是的,我可以使用 HashMap 将其填充到构造函数中,但随后我无法得到“OK”,如下所示:String status = STATUS[200]

最佳答案

枚举最适合:

public enum Response {
  OK(200, "OK"), 
  Created(201, "Created"),
  NotFound(404, "Not found");

  private final int _code;
  private final String _message;

  Response(int code, String message) {
    _code = code;
    _message = message;
  }

  public int code() {
    return _code;
  }

  public String message() {
    return _message;
  }
}

枚举的另一个好处是您可以在代码中使用易于理解的常量名称进行操作,例如Response.NotFound而不是数字代码。如果您确实需要通过代码获取值,只需添加一个静态方法来解析枚举实例即可。

关于java - Java中的键>值配对数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029088/

相关文章:

java - 打印 StringBuffer JOptionPane

java - 在 Java 中将 URL 参数转换(解析)为 JSON

java - 比较从java和sql中的数据库获得的值

c++ - 如何使用变量名引用数组位置

C# (Unity) 不同托管数组类型之间的快速复制

c# - 如何动态检查数组中的索引是否存在?

java - 以货币格式显示最终价格并从java文件中读取

java - 将文本文件加载到 HashMap<Integer, List<String>> java

javascript - 找出素因数时得到的结果为未定义

javascript - 简化删除重复数组的功能