> Java > java지도 시간 > Java 21의 스위치 패턴 일치

Java 21의 스위치 패턴 일치

王林
풀어 주다: 2024-07-19 00:46:41
원래의
396명이 탐색했습니다.

Pattern Matching for Switch in Java 21

패턴 일치는 Java에서 매우 기대되는 기능으로, 언어에 더 많은 강력함과 유연성을 제공합니다. Java 21에서는 스위치 문에 대한 패턴 일치를 도입하여 코드를 단순화하고 상용구를 줄입니다. 이 새로운 기능이 어떻게 작동하고 왜 유용한지 살펴보겠습니다.

Switch의 패턴 매칭이란 무엇입니까?

스위치 패턴 일치를 사용하면 패턴과 값을 일치시켜 코드를 더욱 표현력 있고 읽기 쉽게 만들 수 있습니다. 여러 개의 if-else 문이나 복잡한 스위치 케이스를 사용하는 대신 이제 더욱 간결하고 유지 관리가 쉬운 코드를 작성할 수 있습니다.

스위치 패턴 매칭의 이점

  • 가독성: 코드를 더 쉽게 읽고 이해할 수 있습니다.
  • 간결함: 상용구 코드의 양을 줄입니다.
  • 유형 안전성: 컴파일 시 더 나은 유형 검사를 제공합니다.

스위치에 패턴 일치를 사용하는 방법

다음은 스위치의 패턴 일치 작동 방식을 보여주는 간단한 예입니다.

static String formatterPatternSwitch(Object obj) {
    return switch (obj) {
        case Integer i -> String.format("int %d", i);
        case Long l    -> String.format("long %d", l);
        case Double d  -> String.format("double %f", d);
        case String s  -> String.format("String %s", s);
        default        -> obj.toString();
    };
}
로그인 후 복사

이 예에서 formatterPatternSwitch는 객체를 가져와 해당 유형에 따라 형식이 지정된 문자열을 반환합니다. 현재 진행 상황에 대한 분석은 다음과 같습니다.

  1. 스위치 표현식: 스위치 표현식은 obj를 가져와서 다른 패턴과 일치시킵니다.
  2. 케이스 패턴: 각 케이스는 일치하는 패턴을 지정합니다.
    • Integer i: obj가 Integer의 인스턴스인 경우 일치하고 값을 i에 바인딩합니다.
    • Long l: obj가 Long의 인스턴스인 경우 일치하고 값을 l에 바인딩합니다.
    • Double d: obj가 Double의 인스턴스인 경우 일치하고 값을 d에 바인딩합니다.
    • String s: obj가 String의 인스턴스이고 값을 s에 바인딩하는 경우 일치합니다.
  3. Default Case: 기본 케이스는 지정된 패턴과 일치하지 않는 모든 값을 처리하고 obj.toString()을 사용하여 문자열로 변환합니다.

자세한 사례 사례를 들어보겠습니다: 다양한 모양 처리

다양한 모양을 처리하고 면적을 계산해야 하는 시나리오를 생각해 보세요. 스위치에 대한 패턴 일치를 통해 코드를 단순화하는 방법은 다음과 같습니다.

abstract sealed class Shape permits Circle, Square, Rectangle {}

final class Circle extends Shape {
    double radius;
    Circle(double radius) { this.radius = radius; }
}

final class Square extends Shape {
    double side;
    Square(double side) { this.side = side; }
}

final class Rectangle extends Shape {
    double length, width;
    Rectangle(double length, double width) { this.length = length; this.width = width; }
}

static double calculateArea(Shape shape) {
    return switch (shape) {
        case Circle c -> Math.PI * c.radius * c.radius;
        case Square s -> s.side * s.side;
        case Rectangle r -> r.length * r.width;
    };
}
로그인 후 복사

이 예에서는:

  1. 봉인된 클래스: Shape은 봉인된 클래스이며 , 사각형, 직사각형만 확장할 수 있습니다.
  2. Switch 표현식: calculateArea 메소드는 스위치 표현식을 사용하여 shape의 유형을 결정하고 해당 면적을 계산합니다.
  3. 케이스 패턴: 각 케이스는 특정 모양 유형과 일치하고 해당 영역 계산을 수행합니다.
    • Circle c: shapeCircle인 경우 일치하고 이를 c에 바인딩하고 c.radius를 사용하여 면적을 계산합니다.
    • Square s: shapeSquare인 경우 일치하고 이를 s에 바인딩하고 s.side를 사용하여 면적을 계산합니다.
    • Rectangle r: shapeRectangle인 경우 일치하고 이를 r에 바인딩하고 r.length를 사용하여 면적을 계산합니다. r.width.

결론

Java 21의 스위치 패턴 일치는 코드 가독성, 간결성 및 유형 안전성을 향상시키는 강력한 기능입니다. 스위치 문에서 직접 패턴과 값을 일치시킬 수 있으므로 많은 일반적인 코딩 작업이 단순화됩니다. Java 개발자는 더욱 깔끔하고 유지 관리가 쉬운 코드를 작성하기 위해 반드시 이 기능을 살펴보고 채택해야 합니다.

이 섹션을 필요에 맞게 수정하거나 확장하세요!

위 내용은 Java 21의 스위치 패턴 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿