おおよそ次のようなJSON応答が返されます。
_{
"status": "success",
"data": [
{
....
}
]
}
_
status
フィールドには、successまたはfailの2つの値を指定できます。 -)。
だから私のコードでは、次の列挙型があります。
_private enum Status {
SUCCESS("success", 0),
FAIL("fail", 1);
private String stringValue;
private int intValue;
private Status(String toString, int value) {
stringValue = toString;
intValue = value;
}
@Override
public String toString() {
return stringValue;
}
}
_
私がやりたいのは、switchステートメントです。ステータス値を確認し、各条件でコードを実行する必要があります。
_String status = jsonObj.getString("status");
switch (status) {
case Status.SUCCESS.toString():
Log.d(LOG_TAG, "Response is successful!");
case Status.FAIL.toString():
Log.d(LOG_TAG, "Response failed :(");
default:
return;
}
_
しかし、それぞれの場合に定数式が必要エラーが発生します。
実際に文字列を返すStatus.SUCCESS.toString()
およびStatus.FAIL.toString()
によって返される値を確認しました。
このエラーがまだ発生する理由はありますか?
case
ステートメントは、コンパイル時に評価可能でなければなりません。
Status.SUCCESS.toString()
のようなものはそれを満たしていません。一方、文字列literalは使用します。
明らかな修正は、if
ブロックを使用することです。