在java中的switch case中使用字符串

2022-01-19 00:00:00 string switch-statement java

在检查 String 时,我需要将以下 if 更改为 switch-case, 以提高圈复杂度.

I need to change the following if's to a switch-case while checking for a String, to improve the cyclomatic complexity.

String value = some methodx;
if ("apple".equals(value)) {
    method1;
}

if ("carrot".equals(value)) {
    method2;
}

if ("mango".equals(value)) {
    method3;
}

if ("orange".equals(value)) {
    method4;
}

但我不确定我会得到什么价值.

But I am not sure what value I'm going to get.

推荐答案

Java(版本 7 之前)在 switch/case 中不支持 String.但是您可以通过使用枚举来实现所需的结果.

Java (before version 7) does not support String in switch/case. But you can achieve the desired result by using an enum.

private enum Fruit {
    apple, carrot, mango, orange;
}

String value; // assume input
Fruit fruit = Fruit.valueOf(value); // surround with try/catch

switch(fruit) {
    case apple:
        method1;
        break;
    case carrot:
        method2;
        break;
    // etc...
}

相关文章