简而言之,我有一个if
语句,它具有多个不同的结果,但是有很多共同的代码。
我想确保以下代码是完成我要尝试的操作的正确方法
(例如:链接方法调用,如图所示)。对吗?
SharedPreferences getPrefs =
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
final String notifType = getPrefs.getString
(PREF_NOTIFICATION_TYPE, NOTIFICATION_TYPE_SOUND_AND_VIBRATION);
if (notifType != null && notifType.equals
(NOTIFICATION_TYPE_SOUND_AND_VIBRATION)) {
// Call the appropriate Methods, depending on the Preference..
notificationVibration();
playNotificationTone();
showReminderNotification();
} else if (notifType !=null && notifType.equals
(NOTIFIATION_TYPE_VIBRATION_ONLY)) {
// Calling alot of the same code, but minus the Sound..
notificationVibration();
showReminderNotification();
} else if (notifType !=null && notifType.equals
(NOTIFIATION_TYPE_SILENT_REMINDER)) {
// Again re-using common code..
showReminderNotification();
}
public void notificationVibration() {
// Vibration code here
}
public void playNotificationTone() {
// Sound code here
}
public void showReminderNotification() {
// Notification code here
}
SO -这是解决此问题的正确方法吗?
我可以链接方法调用(如图所示)并使它们同时触发吗?
如果没有,正确执行 的正确方法是什么?
反馈非常感谢!谢谢。
答案 0 :(得分:1)
您可以在if
内使用switch
块:
if (notifType != null) {
switch(notifType) {
case NOTIFICATION_TYPE_SOUND_AND_VIBRATION:
....
break;
case NOTIFIATION_TYPE_VIBRATION_ONLY:
....
break;
case NOTIFIATION_TYPE_SILENT_REMINDER:
....
}
}
您还可以使用多个if语句代替switch。使用可使代码更有效的唯一方法是一次使用if (notifType != null)
。
答案 1 :(得分:0)
假设代码本身在方法内部,则可以执行以下操作。
private void methodName() {
if (notifType != null)
return
switch(notifType) {
case NOTIFICATION_TYPE_SOUND_AND_VIBRATION:
....
break;
case NOTIFIATION_TYPE_VIBRATION_ONLY:
....
break;
case NOTIFIATION_TYPE_SILENT_REMINDER:
....
}
}