Я понимаю ошибку, и я могу устранить ее с помощью If, но может кто-то сказать мне, почему выражение case должно быть постоянным в switch / case
я возникла проблема в моей инструкции switch / case. Ошибка говорит: «Выражения регистра должны быть константными выражениями». Я понимаю ошибку, и я могу устранить ее, используя If, но может кто-нибудь сказать мне, почему выражение case должно быть постоянным в switch / case. Пример кода моей ошибки:
public boolean onOptionsItemSelected(MenuItem item) {
int idDirectory = ((MenuItem) findViewById(R.id.createDirectory)).getItemId();
int idSuppression = ((MenuItem) findViewById(R.id.recycleTrash)).getItemId();
int idSeeTrash = ((MenuItem) findViewById(R.id.seeTrash)).getItemId();
switch (item.getItemId()) {
case idDirectory:
createDirectory(currentDirectory);
break;
case idSuppression:
recycleTrash();
break;
case idSeeTrash:
seeTrash();
break;
}
return super.onOptionsItemSelected(item);
}
Спасибо за ваше объяснение!