>Java >java지도 시간 >Java 14에서 유형 캐스팅 및 추출을 위해 패턴 일치를 사용하는 방법

Java 14에서 유형 캐스팅 및 추출을 위해 패턴 일치를 사용하는 방법

WBOY
WBOY원래의
2023-08-01 16:01:16637검색

Java 14에서 유형 캐스팅 및 추출을 위해 패턴 일치를 사용하는 방법

Java 14에는 매우 강력한 기능인 패턴 일치가 도입되었습니다. 이 기능은 특히 캐스트 및 유형 추출을 수행할 때 유형 판단을 더욱 간결하고 편리하게 만듭니다. 이 문서에서는 패턴 일치를 사용하여 Java 14에서 유형 캐스팅 및 추출을 수행하는 방법을 소개하고 코드 예제를 통해 이를 설명합니다.

이전 Java 버전에서는 일반적으로 유형 캐스팅과 추출을 수행하기 위해 두 단계를 거쳐야 했습니다. 먼저, instanceof 키워드를 사용하여 객체의 타입을 확인한 후, Cast를 사용하여 대상 타입으로 변환해야 합니다. 이 접근 방식은 특히 복잡한 개체 관계를 처리할 때 매우 지루하고 오류가 발생하기 쉽습니다.

Java 14의 패턴 일치는 새로운 인스턴스 구문과 스위치 문에 패턴 일치를 도입하여 유형 결정 프로세스를 단순화합니다. 사용 방법을 이해하기 위해 몇 가지 예를 살펴보겠습니다.

먼저 간단한 예를 살펴보겠습니다. Area라는 메서드를 포함하는 추상 클래스 Shape가 있고 다양한 모양을 기반으로 면적을 계산해야 한다고 가정합니다. Circle, Rectangle 및 Triangle과 같은 여러 특정 모양 클래스를 정의할 수 있습니다.

abstract class Shape {
    abstract double area();
}

class Circle extends Shape {
    double radius;

    Circle(double radius) {
        this.radius = radius;
    }

    double area() {
        return Math.PI * radius * radius;
    }
}

class Rectangle extends Shape {
    double width;
    double height;

    Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    double area() {
        return width * height;
    }
}

class Triangle extends Shape {
    double base;
    double height;

    Triangle(double base, double height) {
        this.base = base;
        this.height = height;
    }

    double area() {
        return 0.5 * base * height;
    }
}

이전 Java 버전에서는 특정 Shape 유형을 확인하고 Cast 유형 변환을 수행하기 위해 종종 instanceof를 사용해야 했습니다.

Shape shape = ...; // 初始化一个形状对象

if (shape instanceof Circle) {
    Circle circle = (Circle) shape; // 强制类型转换
    double area = circle.area();
    // 其他处理...
} else if (shape instanceof Rectangle) {
    Rectangle rectangle = (Rectangle) shape;
    double area = rectangle.area();
    // 其他处理...
} else if (shape instanceof Triangle) {
    Triangle triangle = (Triangle) shape;
    double area = triangle.area();
    // 其他处理...
}

Java 14에서는 보다 간결한 코드 작성을 위해 새로운 instanceof 구문을 사용할 수 있습니다.

Shape shape = ...; // 初始化一个形状对象

if (shape instanceof Circle circle) {
    double area = circle.area();
    // 其他处理...
} else if (shape instanceof Rectangle rectangle) {
    double area = rectangle.area();
    // 其他处理...
} else if (shape instanceof Triangle triangle) {
    double area = triangle.area();
    // 其他处理...
}

In 이 새로운 구문을 사용하면 캐스트 코드를 instanceof의 오른쪽으로 이동하고 지역 변수인 원형, 직사각형 및 삼각형을 후속 코드에서 직접 사용할 수 있습니다. 이것의 장점은 이러한 지역 변수를 명시적으로 선언할 필요가 없으므로 코드의 단순성과 가독성이 향상된다는 것입니다.

조건문의 유형 판단 외에도 스위치 문에서도 패턴 일치를 사용할 수 있습니다. 이전 Java 버전에서는 switch 문의 경우 일치를 위해 상수만 사용할 수 있었습니다. Java 14에서는 일치를 위해 유형 패턴을 사용할 수 있습니다. 예를 살펴보겠습니다.

Shape shape = ...; // 初始化一个形状对象

switch (shape) {
    case Circle circle -> {
        double area = circle.area();
        // 其他处理...
    }
    case Rectangle rectangle -> {
        double area = rectangle.area();
        // 其他处理...
    }
    case Triangle triangle -> {
        double area = triangle.area();
        // 其他处理...
    }
}

이 새로운 스위치 문에서는 모양 유형에 따라 일치하고 지역 변수인 원형, 직사각형 및 삼각형을 후속 코드에서 직접 사용할 수 있습니다. 이런 방식으로 유형 검사와 강제 유형 변환을 반복적으로 수행할 필요가 없으므로 코드 작성 및 유지 관리가 크게 단순화됩니다.

요약하자면, Java 14에서 유형 캐스팅 및 추출에 패턴 일치를 사용하면 코드가 크게 단순화되고 코드의 가독성과 유지 관리성이 향상됩니다. switch 문에 새로운 인스턴스 오브 구문과 패턴 일치를 도입함으로써 중복 코드를 제거하고 유형 변환 오류를 방지할 수 있습니다.

그러나 패턴 일치는 Java 14 이상에서만 사용할 수 있다는 점에 유의하는 것이 중요합니다. 이전 버전의 Java에서는 유형 결정 및 강제 변환을 위해 여전히 전통적인 방법을 사용해야 합니다. 따라서 패턴 일치를 사용할 때는 코드가 올바른 Java 버전에서 실행되고 있는지 확인하는 것이 중요합니다.

이 기사가 Java 14의 패턴 일치를 이해하고 사용하는 데 도움이 되기를 바랍니다. 명확하고 간결한 코드를 작성하는 것은 모든 프로그래머가 추구하는 것이며 패턴 일치는 Java 언어가 이 목표를 향해 나아가는 큰 단계입니다.

위 내용은 Java 14에서 유형 캐스팅 및 추출을 위해 패턴 일치를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.