SeouliteLab

JDK 25의 새로운 기능 살펴보기: 패턴 매칭과 편의성 강화 본문

프로그래밍

JDK 25의 새로운 기능 살펴보기: 패턴 매칭과 편의성 강화

Seoulite Lab 2024. 4. 5. 15:25

JDK 25는 개발자들의 생산성과 코드 품질을 향상시키는 몇 가지 흥미로운 기능과 개선을 소개합니다. 이 블로그 포스트에서는 주목할 만한 추가 기능과 예제 코드 스니펫을 통해 자세한 설명을 제공합니다.

패턴 매칭의 추가된 기능

JDK 25의 주요 특징 중 하나는 instanceof 연산자의 패턴 매칭 기능을 향상시킨 것입니다. 이 기능을 통해 개발자는 타입 검사를 수행하면서 객체에서 구성 요소를 직접 추출하여 사용할 수 있습니다.

// JDK 25 이전
if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str.toUpperCase());
}

// JDK 25 사용
if (obj instanceof String str) {
    System.out.println(str.toUpperCase());
}
// 출력: obj가 String의 인스턴스인 경우 문자열의 대문자를 출력합니다.

패턴 매칭을 활용한 레코드

JDK 25에서는 레코드를 보다 효율적으로 활용할 수 있도록 instanceofswitch 표현식과의 패턴 매칭을 지원합니다. 이러한 개선으로 레코드 구성 요소와 함께 작업하기 위한 간결한 구문이 제공됩니다.

record Point(int x, int y) {}

// instanceof와 함께 사용하는 패턴 매칭
if (obj instanceof Point p) {
    System.out.println("x: " + p.x + ", y: " + p.y);
}
// 출력: obj가 Point의 인스턴스인 경우 좌표를 출력합니다.

// switch와 함께 사용하는 패턴 매칭
switch (obj) {
    case Point p -> System.out.println("Point: " + p.x + ", " + p.y);
    // obj가 Point의 인스턴스인 경우 해당 좌표를 출력합니다.
    default -> System.out.println("Unknown object");
    // 그 외의 경우 "알 수 없는 객체"를 출력합니다.
}