Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn

Callista medarbetare Jan Västernäs

Java 13

// Jan Västernäs

Häromdagen släpptes JDK 13 och det var ju inte så länge sedan 12:an kom så det är väl inte så väldigt många stora genomgripande förändringar.

Men bättre switch-syntax och text-block är två intressanta saker. Jag hörde en av mina kollegor utbrista “Äntligen” !

En switch kan numera innehålla yield vilket ger en betydligt trevligare syntax tycker jag. Tidigare kanske det såg ut såhär

	private String statementBreak(int switchArg){
  		String str = "not set";
  		switch (switchArg){
    		case 1:
    		case 2:
      			str = "one or two";
      			break;
    		case 3:
      			str = "three";
      		break;
  		};
  		return str;
	}

Numera kan man skriva såhär: visar också att en switchsats kan returnera ett värde vilket minskar behovet av lokala variabler.

	private String expressionBreakWithValue(int switchArg){
  		return switch (switchArg){
    		case 1, 2: yield "one or two";
    		case 3: yield "three";
    		default: yield "smaller than one or bigger than three";
  		};
	}

Pilsyntaxen går också att använda

	private static String expressionWithArrow(int i) {
  		return switch (i) {
    		case 1, 2 -> "one or two";
    		case 3 -> "three";
    		default -> "smaller than one or more than three";
  		};
	}

Switchsatser på enums behöver ingen default-rad om man täcker in alla fall (kompilatorn genererar en)

	int numLetters = switch (day) {
    	case MONDAY, FRIDAY, SUNDAY -> 6;
    	case TUESDAY                -> 7;
    	case THURSDAY, SATURDAY     -> 8;
    	case WEDNESDAY              -> 9;
	};

Text-block innebär att vi får ett mer lättläst sätt att definiera text-massor över flera rader.

Så här kanske det såg ut innan :

	String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
               	   "WHERE `CITY` = 'INDIANAPOLIS'\n" +
                   "ORDER BY `EMP_ID`, `LAST_NAME`;\n";

Och såhär kan man skriva i Java 13

	String query = """
               SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
               WHERE `CITY` = 'GOTEBORG'
               ORDER BY `EMP_ID`, `LAST_NAME`;
               """;
Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer