Fra*_*ank 2 java switch-statement
在我的Java应用程序中,我有一个切换方法,应用程序需要遍历交换机中的所有情况,但切换方法随着我的应用程序开发而不断变化,所以我想知道是否有办法自动检测那里有多少个案例在交换机中并循环遍历所有这些.
void RunAllCases(){
for (int i=0;i< ?? ;i++) SwitchMethod(i);
}
Run Code Online (Sandbox Code Playgroud)
...
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;
}
}
Run Code Online (Sandbox Code Playgroud)
x,y,xx,yy等是一些计算的int值.
简短的回答 - 没有.
稍微长一点的回答 - 没有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...
}
}
Run Code Online (Sandbox Code Playgroud)