Pattern Matching & instanceof (Java 16+) — Free Java Tutorial
Learn Pattern Matching & instanceof (Java 16+) in Java with a free, beginner-friendly tutorial, examples and practice for Indian students on Syllab.in.
TL;DR: Learn Pattern Matching & instanceof (Java 16+) in Java with a free, beginner-friendly tutorial, examples and practice for Indian students on Syllab.in…
Written & reviewed by the Syllab.in Academic Team (CBSE/NCERT subject experts) · Updated
Pattern Matching & instanceof (Java 16+) in Java
Java 16 introduced pattern matching for instanceof. Instead of: if (obj instanceof String) { String s = (String) obj; ... } you write: if (obj instanceof String s) { ... }
The pattern variable s is automatically cast and scoped to the block where the condition is true. This eliminates the explicit cast.
Java 21 introduced sealed classes (classes that restrict which classes can extend them) and pattern matching in switch — powerful for exhaustive type handling.
Pattern matching makes polymorphic type dispatch cleaner and safer — the compiler ensures all cases are handled.
Pattern Matching & instanceof (Java 16+) — Syntax
// Old way
if (obj instanceof String) {
String s = (String) obj;
System.out.println(s.length());
}
// Pattern matching (Java 16+)
if (obj instanceof String s) {
System.out.println(s.length()); // s is String here
}
// In switch (Java 21)
String result = switch (obj) {
case Integer i -> "int: " + i;
case String s -> "string: " + s.toUpperCase();
case null -> "null";
default -> "other";
};
Learn Pattern Matching & instanceof (Java 16+) step by step with Syllab's free interactive Java tutorial — runnable code examples, practice exercises and instant AI feedback, all free with no signup. Explore the full Java course →