Switch Java 问题:大小写表达式必须是常量表达式
2022-09-01 16:35:42
我在开关/案例声明中遇到了问题。错误显示:“大小写表达式必须是常量表达式”。我理解这个错误,我可以使用If来解决它,但有人可以告诉我为什么case表达式在开关/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);
}
谢谢你的解释!