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.
Yes, we can use a switch statement with Strings in Java.
String is the only non-integer type which can be used in switch statement.
To ensure that we have a match in a case clause, we will test the original str value (that is provided to the switch statement) against the input property of a successful match . input is a static property of regular expressions that contains the original input string. When match fails it returns null .
We can use Byte, Integer, Short and Long variables with wrapper classes in switch statements in Java. Explanation: In the above code snippet, Integer is an object as it is converted from primitive data type (int) to object (Integer).
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... }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With