Java 如何在 Switch Case 中调用多个方法

How to Call Multiple Methods in a Switch Case in Java

我正在学习如何使用 MVC 在 Java 中构建 table,并且我正在尝试拥有一个既可以对模型中的数据执行更改又可以调用方法的切换案例像这样

 public void update()
    {   model.fireTableDataChanged();   }

更新 table 上显示的数据。

这是开关盒

 public Object getValueAt(int row, int col)
    {   switch(col)
        {   case 0: return row;
            case 1:  return car.on(car.stops());
            default: return "";   }  
        }

非常感谢任何帮助,如果您需要查看更多代码来帮助您回答我的问题,我会提供。

我对您的代码进行了不同的格式化。希望它能让你更容易理解多个语句。尝试这样的事情:

public Object getValueAt(int row, int col) {
    switch(col) {   
        case 0:
            // You can add any number of statements here.
            ...
            update();
            return row;
        case 1:
            ...
            update();
            return car.on(car.stops());
        default:
            ...
            update();
            return "";
    }  
}

您似乎错误地理解了 case 在第一个分号处结束。这是不正确的。直到您用整个 switch 语句的右大括号结束它们,或者直到您包含一个中断,案例才会结束。在案例和案例结束之间,你可以有任意数量的代码行来做(几乎)任何你想做的事情。

将 switch 想像成一个函数,退出该函数的唯一*方式是到达 break 语句、return 语句或末尾的右大括号,方式完全相同您使用 return 退出函数并到达函数末尾。

switch(condition) {
    case 1:  fcnOne();
    case 2:  fcnTwoA(); fcnTwoB();
    case 3:  fcnThree; break;
    default: fcnFour();
}

如果条件为 1,则调用 fcnOne()。 fcnOne() 中没有中断,因此代码继续进入情况 2。这通常称为落空。然后调用 fcnTwoA()。代码继续执行下一条指令,即调用 fcnTwoB()。下一条指令是 fcnThree()。最后,我们遇到了一个 break 语句,它退出了 switch 块。


是的,我故意忽略非空函数的异常、System.exit() 和 return 值。