Spring boot 3
요구사항
Java17 (3.0 버전 기준 java19 까지 호환)
Jakarta EE10
Spring Framework 6.0 이상
Gradle 7.x(7.5이상)
버전 | 핵심 변경사항 |
---|---|
10 | Local Variable Type Inference : var |
14 | Switch Expression |
15 | Text Block |
16 | Record, Pattern Matching for instanceof |
17 | Sealed Class |
// ORIGINAL
List<String> list = new ArrayList<>();
If var is used, however, the concrete type is inferred instead of the interface:
// Inferred type of list is ArrayList<String>
var list = new ArrayList<String>();
Var 을통해서 변수 타입을 포괄적으로 사용 가능.
이로 인해서 변수명을 초기화 할떄 좀 더 명확하게 작성할 필요가 있다.
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> {
System.out.println(6);
yield 6;
}
case TUESDAY -> {
System.out.println(7);
yield 7;
}
case THURSDAY, SATURDAY -> {
System.out.println(8);
yield 8;
}
case WEDNESDAY -> {
System.out.println(9);
yield 9;
}
default -> {
throw new IllegalStateException("Invalid day: " + day);
}
};
java 의 switch 문을 단순하게 값을 대입하는게 아니라 에로우를 통해서 사용을 할 수 있게 되었다. 또한 증복되는 값을 출력해야하는경우
case MONDAY,FRIDAY, SUNDAY -> {} 와 같은 방법으로고 사용할 수 있다
// ORIGINAL
String message = "'The time has come,' the Walrus said,\n" +
"'To talk of many things:\n" +
"Of shoes -- and ships -- and sealing-wax --\n" +
"Of cabbages -- and kings --\n" +
"And why the sea is boiling hot --\n" +
"And whether pigs have wings.'\n";
Using text blocks removes much of the clutter:
// BETTER
String message = """
'The time has come,' the Walrus said,
'To talk of many things:
Of shoes -- and ships -- and sealing-wax --
Of cabbages -- and kings --
And why the sea is boiling hot --
And whether pigs have wings.'
""";
Text Block 기능을 통해서 String 문자열 중에 줄바꿈 등의 케이스를 더
가독성 있게 작성 할 수 있다.
참고