可以在java中使用switch(java.lang.Object)吗?
我的应用程序需要具有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
? 请评论一下?
由于您正在打开字符串,我假设字符串在编译时是已知的。 在这种情况下,您可以使用枚举。
public enum MyStrings{ LIST1, LIST2 }
然后
switch(MyStrings.valueOf(option)){ case LIST1: do something; break; //etc. }
看到这个问题: 为什么我不能打开一个字符串?
目前不支持,但预计将在Java 7中使用。
编辑:实际上看起来只是String
s,而不是任何Object
也许每个对象应该实现一个方法,其中包含您尝试放入switch语句的逻辑?
在JDK 7发行版中,您可以在switch语句的表达式中使用String对象: http : //docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html
不,你不能这样做(尝试并找出)。 但是如果你想要这个,也许像HashMap这样的Map更适合你的目的。
不,使用其他集合(如Hashmap)或使用数组索引来执行相同操作,创建元素数组并在索引上放置切换案例
可以支持该开关来检查String,Integer和其他原始数据类型,但是在对象比较中不能批准它。