Modern Java · interview question
Given the following code, what will be printed if the 'status' is 'PENDING'? enum OrderStatus { PENDING, SHIPPED, DELIVERED } OrderStatus status = OrderStatus.PENDING; String message = switch (status) { case SHIPPED -> "Order shipped."; case DELIVERED -> "Order delivered."; }; System.out.println(message);?
Multiple choiceHardchapter-12-curatedpremiummodern-javaswitch-expressions
enum OrderStatus { PENDING, SHIPPED, DELIVERED }
OrderStatus status = OrderStatus.PENDING;
String message = switch (status) {
case SHIPPED -> "Order shipped.";
case DELIVERED -> "Order delivered.";
};
System.out.println(message);Answer and explanation
Correct answer
A. Compilation error
Why
The switch expression lacks a case for 'PENDING' and a default case, resulting in a compilation error due to non-exhaustiveness in handling all enum constants.
Test yourself on Modern Java
A free test with instant, explained results. No account needed.
More Modern Java questions
- Given a Java text block, how does the compiler handle incidental whitespace?
- How do you write a multiline string in Java using text blocks?
- In which scenario is a static factory method preferred over a constructor?
- In Java 17, how would you refactor a switch statement to a switch expression for better readability and safety in a…
- Why does overriding hashCode in a value object change runtime behavior?
- How does using Java text blocks simplify embedding JSON structures in code?