私は2つの方法で実行できるコードを持っています:
SWITCH WITHOUT BREAK (ケースの共通コード用)
ResultCodes resCode = ResultCodes.fromResponseCode(resultCode);
switch (resCode) {
case SUCCESS:
if(userIdentity != null)
Logger.logInfo(MODULE, "User Authenticated Successfully, UseIdentity: " +userIdentity);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = SUCCESS;
break;
case REDIRECT:
url = resultMap.get(WebinKeyConstants.REDIRECTION_URL.val);
Logger.logInfo(MODULE, "Redirecting to URL : " + url);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = REDIRECT;
break;
case AUTHENTICATION_FAIL:
case USER_ACCOUNT_BLOCKED:
case USER_ACCOUNT_INACTIVE:
case USER_ACCOUNT_SUSPENDED:
case USER_ACCOUNT_TERMINATED:
case USER_ACCOUNT_BLOCKED_ALERT:
case OTP_SEND_SUCCESS:
case USER_PROFILE_NOT_FOUND:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
}
上記のシナリオでは、すべてのケースで同じコードが実行されることを意味するブレークが 1 つだけあります。
WITH BREAK FOR EACH CASE(ケース共通コード用)
上記のシナリオは、以下に示すように、他の方法でも実現できます
ResultCodes resCode = ResultCodes.fromResponseCode(resultCode);
switch (resCode) {
case SUCCESS:
if(userIdentity != null)
Logger.logInfo(MODULE, "User Authenticated Successfully, UseIdentity: " +userIdentity);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = SUCCESS;
break;
case REDIRECT:
url = resultMap.get(WebinKeyConstants.REDIRECTION_URL.val);
Logger.logInfo(MODULE, "Redirecting to URL : " + url);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = REDIRECT;
break;
case AUTHENTICATION_FAIL:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_BLOCKED:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_INACTIVE:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_SUSPENDED:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_TERMINATED:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_BLOCKED_ALERT:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case OTP_SEND_SUCCESS:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_PROFILE_NOT_FOUND:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
}
どちらを使用するのが良いですか?パフォーマンスの問題はありますか?