Reports switch statements that can be automatically replaced with enhanced switch statements or expressions.

Example:


  double getPrice(String fruit) {
    // Switch statement can be replaced with enhanced 'switch'
    switch (fruit) {
      case "Apple":
        return 1.0;
      case "Orange":
        return 1.5;
      case "Mango":
        return 2.0;
      default:
        throw new IllegalArgumentException();
    }
  }

After the quick-fix is applied:


  double getPrice(String fruit) {
    return switch (fruit) {
      case "Apple" -> 1.0;
      case "Orange" -> 1.5;
      case "Mango" -> 2.0;
      default -> throw new IllegalArgumentException();
    };
  }
  

This inspection only applies to language level 14 or higher

New in 2019.1