September 2019
Intermediate to advanced
816 pages
18h 47m
English
A label's arrow can point to a single statement (as in the examples from the previous two problems) or to a curly-braced block. This is pretty similar to the lambda blocks. Check out the following solution:
private static Player createPlayer(PlayerTypes playerType) { return switch (playerType) { case TENNIS -> { System.out.println("Creating a TennisPlayer ..."); break new TennisPlayer(); } case FOOTBALL -> { System.out.println("Creating a FootballPlayer ..."); break new FootballPlayer(); } case SNOOKER -> { System.out.println("Creating a SnookerPlayer ..."); break new SnookerPlayer(); } default -> throw new IllegalArgumentException( "Invalid player type: " + playerType); };}