在Java中有一种方法可以自动检测交换机操作中有多少个案例?

时间:2014-10-18 19:06:33

标签: java switch-statement

在我的Java应用程序中,我有一个切换方法,应用程序需要遍历交换机中的所有情况,但切换方法随着我的应用程序开发而不断变化,所以我想知道是否有办法自动检测如何许多情况都在切换并循环遍历所有这些。

 void RunAllCases(){

      for (int i=0;i< ?? ;i++) SwitchMethod(i);

 }

...

int SwitchMethod(int I)
{
    switch (I)  {
         case   0 : return x;
         case   1 : return y;
        ...
         case 200 : return xx;
        ...
         case 360 : return yy;
        ...
         case 778899 : return nnnnn;
        ...
         default : return z;
    }
}

x,y,xx,yy等是一些计算的int值。

3 个答案:

答案 0 :(得分:8)

答案简短 - 不。

答案稍长 - 不是int。但是,您可以做的是定义enum并将其传递给switchMethod。然后通过调用values()

可以轻松地迭代它
public enum SwitchCases {
    Case1, Case2, etc;
}

void runAllCases() {
    for (SwitchCases sc : SwitchCases.values()) {
        switchMethod(sc);
    }
}

int switchMethod(SwitchCases sc) {
    switch (sc) {
        case Case1: return x;
        case Case2: return y;
        // etc...
    }
}

答案 1 :(得分:0)

如果您的应用拥有所有这些切换声明,并且您希望“点击”#39;所有这些,那么为什么不直接定义一个直接调用它们的方法呢?

答案 2 :(得分:0)

首先,您在这个问题中的要求是开关盒本身,所以我们不能在开关盒内写任何东西。而且您无法从外部检测到交换机内的支票数量。

否则,如果您自己正在编写开关案例,那么您可以不间断地编写所有案例,并且在调用第一个案例时它将执行所有案例。