アプリ内課金のコーディング例では、
public enum ResponseCode {
RESULT_OK,
RESULT_USER_CANCELED,
RESULT_SERVICE_UNAVAILABLE,
RESULT_BILLING_UNAVAILABLE,
RESULT_ITEM_UNAVAILABLE,
RESULT_DEVELOPER_ERROR,
RESULT_ERROR;
// Converts from an ordinal value to the ResponseCode
public static ResponseCode valueOf(int index) {
ResponseCode[] values = ResponseCode.values();
if (index < 0 || index >= values.length) {
return RESULT_ERROR;
}
return values[index];
}
}
と
int responseCode = response.getInt(Consts.BILLING_RESPONSE_RESPONSE_CODE);
boolean billingSupported = (responseCode == ResponseCode.RESULT_OK.ordinal());
私には、ここで列挙型を使用するのは非常に奇妙に思えます。列挙型がいくつかの異なる順序を使用する場合、それはすべて失敗し、列挙型は特定の序数値に依存するべきではないと思いました。リターンコードがゼロかどうかをチェックするだけでなく、なぜこのように行われるのですか?
Androidのドキュメントで、たとえば3の戻りコードがRESULT_SERVICE_UNAVAILABLEであると指定されている場合。これはサンプルコードからしか推測できません。
ありがとう、A。