[HD-OCP17/21-Fundamentals Pg 247, Sec. 10.2.1 - using-multiple-pattern-variables]

Help and support on OCA OCP Java Programmer Certification Questions
1Z0-808, 1Z0-809, 1Z0-815, 1Z0-816, 1Z0-817

Moderator: admin

Post Reply
raphaelzintec
Posts: 167
Joined: Sun Apr 21, 2024 10:43 am
Contact:

[HD-OCP17/21-Fundamentals Pg 247, Sec. 10.2.1 - using-multiple-pattern-variables]

Post by raphaelzintec »

Code: Select all

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

admin
Site Admin
Posts: 10384
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: [HD-OCP17/21-Fundamentals Pg 247, Sec. 10.2.1 - using-multiple-pattern-variables]

Post by admin »

Which JDK are you using? Just tried it on JDK 17.0.3, it doesn't compile.

raphaelzintec
Posts: 167
Joined: Sun Apr 21, 2024 10:43 am
Contact:

Re: [HD-OCP17/21-Fundamentals Pg 247, Sec. 10.2.1 - using-multiple-pattern-variables]

Post by raphaelzintec »

ok sorry

i was wrong about this: In Java 17, you cannot use pattern matching with a supertype

in short java 17 does not accept null for instanceof

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 8 guests