Number n = null;
//using instanceof for type comparison
if(n instanceof Number){ //valid for all versions, false if n is null
}
if(n instanceof Object){ //valid for all versions, false if n is null
}
//using instanceof for pattern matching
if(n instanceof Number num){ //compilation error in Java 17 but not in Java 21
}
if(n instanceof Object num){ //compilation error in Java 17 but not in Java 21
}
This is incorrect because the following will not give compilation error in Java 17 if(n instanceof Number num){ //compilation error in Java 17 but not in Java 21}
and honestly it would be more simplier to just say "In Java 17, you cannot use pattern matching with a supertype" period