我的应用程序需要具有String
类型的switch case语句。
我需要这样的东西:
Object list1 = "list1";
Object list2 = "list2";
Object list3 = "list3";
Object option = "list1";
switch (option) {
case list1: // Do something
case list2: // Do something
case list3: // Do something
default: // Do something
}
有可能吗?
修改
在
n
条件下使用switch case更好,而不是if
和else
?请评论一下吗?
答案 0 :(得分:11)
由于您正在打开字符串,我假设字符串在编译时是已知的。在这种情况下,您可以使用枚举。
public enum MyStrings{
LIST1, LIST2
}
然后
switch(MyStrings.valueOf(option)){
case LIST1: do something; break;
//etc.
}
答案 1 :(得分:3)
请参阅此问题:Why can't I switch on a String?
目前不支持,但预计将使用Java 7。
修改:实际上似乎只有String
个,而不是Object
个
也许每个对象都应该实现一个包含你试图放入switch语句的逻辑的方法?
答案 2 :(得分:2)
在JDK 7发行版中,您可以在switch语句的表达式中使用String对象: http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html
答案 3 :(得分:0)
不,你不能这样做(尝试并找出)。但是如果你想要这个,也许像HashMap这样的Map更适合你的目的。
答案 4 :(得分:0)
不,使用其他集合(如Hashmap)或使用数组索引来执行相同操作,创建元素数组并在索引上放置切换案例
答案 5 :(得分:0)
可以支持切换检查String,Integer和其他原始数据类型,但是在对象比较中不支持成功。