使用字符串作为切换参数

时间:2012-06-22 08:10:54

标签: java switch-statement

我在一篇关于 Switch vs If 的文章中读到,如果我们使用String作为switch参数,编译器将不会生成跳转表。这是正确的,如果是,请求解释原因?

由于

PS

我对了解java有兴趣。我读到的关于这个的部分来自Stackoverflow中的答案。所以这是链接stackoverflow.com/a/395965/1043937

它说的是关于c#,但由于java自1.7以来也具有相同的功能,有人可以解释一下。

3 个答案:

答案 0 :(得分:3)

C中的switch语句不能接受字符串作为参数。

java 1.7中的字符串切换语句可用。它们不是之前,因为这个块是从c特征建模的。 java使用或不使用跳转表的事实取决于实现,结果也取决于值。

编辑:有关实施的详细信息,请参阅the link provided by Jon

答案 1 :(得分:0)

在java 1.7之前,你不能使用string作为switch参数。这是java 1.7中的一个功能,您也可以使用String作为切换参数。

答案 2 :(得分:0)

Switch语句可以使用基本类型或枚举类型。 Java 7引入了另一种我们可以在Switch语句中使用的类型:String类型。

public void process(Trade t){

        String status = t.getStatus();



        switch (status) {

        case NEW:

              newTrade(t);

              break;

        case EXECUTE:

              executeTrade(t);

              break;

        case PENDING:

              pendingTrade(t);

              break;



        default:

              break;

        }

  }