Spring boot3 & Java 17

SangLog·2023년 6월 7일
0

기본상식

목록 보기
6/8

Spring boot 3

요구사항
Java17 (3.0 버전 기준 java19 까지 호환)
Jakarta EE10
Spring Framework 6.0 이상
Gradle 7.x(7.5이상)

Java 17

버전핵심 변경사항
10Local Variable Type Inference : var
14Switch Expression
15Text Block
16Record, Pattern Matching for instanceof
17Sealed Class

JAVA 10 Local Variable Type Inference

// 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 을통해서 변수 타입을 포괄적으로 사용 가능.
이로 인해서 변수명을 초기화 할떄 좀 더 명확하게 작성할 필요가 있다.

JAVA 14 Switch Expression

 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 -> {} 와 같은 방법으로고 사용할 수 있다

JAVA 15 Text Block

// 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 문자열 중에 줄바꿈 등의 케이스를 더
가독성 있게 작성 할 수 있다.

JAVA 16 Record

참고

profile
기록 쌓기

0개의 댓글