| Consider using `switch` instead of `if`/`else` for enums. That is, prefer this: |
| |
| ```java |
| switch (foo.getBar()) { |
| case BAZ: |
| doSomething(); |
| break; |
| default: |
| doSomethingElse(); |
| } |
| ``` |
| |
| instead of this: |
| |
| ```java |
| if (foo.getBar().equals(Bar.BAZ)) { |
| doSomething(); |
| } else { |
| doSomethingElse(); |
| } |
| ``` |
| |
| Switches on `enums` have a few small advantages worth considering: |
| |
| * It sidesteps the `equals` vs. `==` debate. |
| * You get to call `BAZ` by its simple name without a static import. That's |
| good because you might not want to see it appear unqualified in other parts |
| of the file where the context would not make its meaning so clear. |
| * You have the option of |
| [protection against missing cases][MissingCasesInEnumSwitch] if you want it. |
| |
| [`MissingCasesInEnumSwitch`]: https:errorprone.info/bugpattern/MissingCasesInEnumSwitch |