Inspectopedia Help

Unnecessary 'default' for enum 'switch' statement

Reports enum switch statements or expression with default branches which can never be taken, because all possible values are covered by a case branch.

Such elements are redundant, especially for switch expressions, because they don't compile when all enum constants are not covered by a case branch.

The language level needs to be configured to 14 to report switch expressions.

The provided quick-fix removes default branches.

Example:

enum E { A, B } int foo(E e) { return switch (e) { case A -> 1; case B -> 2; default -> 3; }; }

After the quick-fix is applied:

enum E { A, B } int foo(E e) { return switch (e) { case A -> 1; case B -> 2; }; }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

UnnecessaryDefault
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Verbose or redundant code constructs

Use the Only report switch expressions option to report only redundant default branches in switch expressions.

Inspection options

Here you can find the description of settings available for the Unnecessary 'default' for enum 'switch' statement inspection, and the reference of their default values.

Only report switch expressions

Default: Selected

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.2, Qodana for JVM 2024.2,

Can be installed with plugin:

Java, 242.22892

Last modified: 11 September 2024