相关疑难解决方法(0)

Switch Java问题: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);
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的解释!!

java android switch-statement

26
推荐指数
2
解决办法
5万
查看次数

标签 统计

android ×1

java ×1

switch-statement ×1