Um problema do Switch Java: expressões de caso devem ser expressões constantes
Estou com um problema na minha instrução switch / case. O erro diz: "As expressões de caso devem ser expressões constantes". Entendo o erro e posso resolvê-lo usando If, mas alguém pode me dizer por que a expressão do caso deve ser constante em um switch / case. Um exemplo de código do meu erro:
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);
}
Thx pela sua explicação !!