Blogg
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
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`;
""";