私はGoのものにそのような変数を持ち、Javaと同じようにしようとしています。キー> 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
クラスのプロパティになることができませんでしたCoSおよびなどの冒頭で定義する必要があります。
package http;
class Response {
// here define filling it e.g STATUS = new Array(200, "OK", ...) etc..
... STATUS ...
}
はい、私はHashMap
を使用して、コンストラクタでそれを埋めることができますが、私はこのような例えば、「OK」を取得することはできません:String status = STATUS[200]
を。
Javaには、連想配列を直接初期化する方法がありません。ループなどを使用する必要があります。 http://stackoverflow.com/questions/24922011/add-multiple-string-variables-to-arraylist/24922034#24922034 – markspace
これに最も適した構造は、文字列へのint型の 'enum'マッピングです。これは例です:http://stackoverflow.com/questions/10661775/java-custom-enum-value-to-enum –
まあ、 'enum'sはOKですが、しばしば扱いにくいです。私は最良の構造は外部ファイルだと思うので、再コンパイルせずに新しい(または廃止予定の)リターンコードを簡単に設定することができます。それは 'enum'を排除します。 – markspace