rspec/rules/S1821/apex/rule.adoc
2020-12-23 14:59:06 +01:00

40 lines
1.0 KiB
Plaintext

Nested ``switch`` structures are difficult to understand because you can easily confuse the ``when`` blocks of an inner ``switch`` as belonging to an outer statement. Therefore nested ``switch`` statements should be avoided.
Specifically, you should structure your code to avoid the need for nested ``switch`` statements, but if you cannot, then consider moving the inner ``switch`` to another function.
== Noncompliant Code Example
----
public void foo(Integer i, Integer j) {
switch on i {
when 1 {System.debug(' 1'); }
when 2 { System.debug(' 2'); }
when -3 {
switch on j { // Noncompliant
when 1 {System.debug(' 3');}
when else {System.debug(' 4');}
}
}
}
}
----
== Compliant Solution
----
public void foo(Integer i, Integer j) {
switch on i {
when 1 {System.debug(' 1'); }
when 2 { System.debug(' 2'); }
when -3 {bar(j);}
}
}
public void bar(Integer j) {
switch on j {
when 1 {System.debug(' 3');}
when else {System.debug(' 4');}
}
}
----