Use Pattern Matching for instanceof

Inspections can guide us to use newer Java features.

If our code uses an instanceof followed by a cast, IntelliJ IDEA highlights these with a warning and suggests replacing this with pattern matching for instanceof. Note that this is only available if you're using a language level of Java 16 or above.

Press ⌥⏎ (macOS) / Alt+Enter (Windows/Linux) and choose Replace with pattern variable.

public class PatternMatchingSwitch {

 void outputValueInUpperCase(Object obj) {
  if (obj instanceof String) {
   String s = (String) obj;
   System.out.println(s);
  }
 }
}

You can press ⌥⏎ (macOS) / Alt+Enter (Windows/Linux) and choose Replace 's' with pattern variable.

public class PatternMatchingSwitch {

    void outputValueInUpperCase(Object obj) {
        if (obj instanceof String s) {
            System.out.println(s);
        }
    }
}

Interested in JVM Development?

call to action image

You can also use pattern matching for switch statements!

Learn More

Related Resources

Convert compact source file to class
Convert compact source file to class
Convert a compact source file to a class in IntelliJ IDEA.
Add static import for simple IO
Add static import for simple IO
Add a static import for simple IO methods.
Work with records
Work with records
Create a record, or convert between classes and records.