我有一个ArrayList,其中包含以下字符串:[name, age, gender, salary]
。 有没有办法可以将我的ArrayList中的值用作case表达式?明显的答案是否定的,因为case表达式必须是常量表达式。但是,我想知道如果我不能使用switch / case,最好的方法是什么。
要清楚,预期的行为是这样的:
switch (parameter) {
case XXX:
// some code here
case YYY:
// some code here
}
我希望XXX为名称,YYY为性别,它们都来自ArrayList。如果用switch / case无法做到这一点,我愿意使用if / else。我怎么能这样做?感谢。
答案 0 :(得分:2)
如果你真的想使用一个switch case并且不能使用非本机java对象,我会尝试一下这样的:
public void test(){
String[] array = {"name", "age", "gender", "salary"};
String value = "name";
switch(indexOf(value, array)){
case 0:
//code
break;
case 1:
//code
break;
case 2:
//code
break;
case 3:
//code
break;
default:
//value wasnt in array
}
}
public int indexOf(String value, String[] array){
for(int i = 0; i < array.length; i++){
if(array[i].equals(value)){
return i;
}
}
//return a place holder value
return -1;
}