rspec/rules/S6208/java/rule.adoc
2022-02-04 16:28:24 +00:00

76 lines
1.4 KiB
Plaintext

In Java 14 there is a new way to write cases in Switch Statement and Expression when the same action should be performed for different cases. Instead of declaring multiples branches with the same action, you can combine all of them in a single case group, separated with commas. It will result in a more concise code and improved readability.
This rule reports an issue when multiple cases in a Switch can be grouped into a single comma-separated case.
== Noncompliant Code Example
[source,java]
----
// Switch Expression
int i = switch (mode) {
case "a":
case "b":
yield 1;
default:
yield 3;
};
// Switch Statement
switch (mode) {
case "a":
case "b":
doSomething();
break;
default:
doSomethingElse();
}
----
== Compliant Solution
[source,java]
----
// Switch Expression
int i = switch (mode) {
case "a", "b":
yield 1;
default:
yield 3;
};
// Switch Statement
switch (mode) {
case "a", "b":
doSomething();
break;
default:
doSomethingElse();
}
// Or even better:
switch (mode) {
case "a", "b" -> doSomething();
default -> doSomethingElse();
}
----
== See
* https://openjdk.java.net/jeps/361[JEP 361: Switch Expressions]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::message.adoc[]
include::highlighting.adoc[]
endif::env-github,rspecator-view[]