rspec/rules/S6208/java/rule.adoc

78 lines
1.4 KiB
Plaintext
Raw Normal View History

== Why is this an issue?
2021-04-28 16:49:39 +02:00
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
2021-04-28 16:49:39 +02:00
2022-02-04 17:28:24 +01:00
[source,java]
2021-04-28 16:49:39 +02:00
----
// 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
2021-04-28 16:49:39 +02:00
2022-02-04 17:28:24 +01:00
[source,java]
2021-04-28 16:49:39 +02:00
----
// 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();
}
----
== Resources
2021-04-28 16:49:39 +02:00
* 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[]