可以在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是否更好,而不是使用ifelse ? 请评论一下?

由于您正在打开字符串,我假设字符串在编译时是已知的。 在这种情况下,您可以使用枚举。

  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和其他原始数据类型,但是在对象比较中不能批准它。