> Java > java지도 시간 > 본문

작은 조정의 힘: Java의 흐름 범위 지정 및 패턴 일치 공개

王林
풀어 주다: 2024-08-12 06:50:02
원래의
362명이 탐색했습니다.

The Power of Small Tweaks: Java #s Flow Scoping and Pattern Matching Unveiled

Java 개발자의 하루: Java 17의 미묘한 힘

커피가 딱 맞는 아침이었고 코드가 컵에 담긴 커피처럼 부드럽게 흐르는 것 같았습니다. 당신은 책상에 앉아 프로젝트의 특히 형편없는 부분, 즉 며칠 동안 문제를 일으켰던 모듈을 처리할 준비를 했습니다. 문제는 복잡한 논리가 아니라 한 줄씩 계속 이어지는 듯한 투박하고 반복적인 코드였습니다.

당신은 한숨을 쉬며 의자에 등을 기대었습니다. 더 좋은 방법이 있을 거라 생각하셨죠.

첫 번째 문제: 범위 확장

어젯밤 늦게까지 잠을 이루지 못하게 했던 버그에 대한 생각이 다시 떠올랐습니다. 이는 교활하고 추적하기 어려운 버그 중 하나였습니다. 변수가 너무 광범위하게 선언되어 발생하는 오류였습니다. 범인은 필요한 후에도 오랫동안 외부 범위에 남아 있는 변수를 사용하여 몇 주 전에 작성한 if else 문이었습니다.

Object obj = 123;
String result;

if (obj instanceof String) {
    result = (String) obj;
} else {
    result = obj.toString();
}

System.out.println(result);
로그인 후 복사

물론 코드는 작동했습니다. 하지만 뭔가가 당신을 괴롭히더군요. 변수 결과는 이전 흐름의 유령처럼 더 넓은 범위에 매달려 있어 혼란을 야기하거나 더 나쁜 또 다른 버그를 일으킬 준비가 되어 있었습니다.

그런데 Java 17에서 읽은 내용이 생각났습니다. 바로 흐름 범위 지정이라는 작은 기능이었습니다. 그것은 큰 변화를 가져올 수 있는 작은 변화 중 하나였습니다. 흐름 범위 지정을 사용하면 변수를 필요한 특정 블록으로 제한하여 나머지 코드를 깔끔하고 집중적으로 유지할 수 있습니다.

한 번 시도해 보기로 결정하셨습니다.

Object obj = 123;

if (obj instanceof String str) {
    System.out.println(str);
} else {
    System.out.println(obj.toString());
}
로그인 후 복사

무게를 들어올린 것 같았습니다. 코드는 더 단단하고 우아해졌습니다. 불필요한 변수가 사라지고 완벽하게 이해되는 흐름이 남았습니다. 미소를 지을 수 밖에 없었습니다. 작은 승리였지만 그래도 만족스럽습니다.

두 번째 문제: 유형 확인 그라인드

당신의 성공에 고무되어, 당신을 괴롭혔던 다른 코드 섹션으로 눈을 돌렸습니다. 이는 전형적인 시나리오였습니다. 문자열, 정수, Double 등 무엇이든 될 수 있는 개체이며, 이를 사용하여 무엇이든 하기 전에 해당 유형을 확인해야 했습니다.

이전 방식은 좋은 부분에 도달하기 위해 여러 단계를 거쳐야 하는 투박했습니다.

Object obj = "Hello, World!";
if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str.toUpperCase());
}
로그인 후 복사

당신은 그것을 보면서 신음했습니다. 물론 작동했지만 왜 유형을 확인한 다음 캐스팅해야 했나요? 왜 이보다 더 간단할 수 없나요?

그때 Java 17의 또 다른 작은 보석인 instanceof에 대한 패턴 일치가 생각났습니다. 이는 단순한 구문 설탕이 아니라 코드를 간소화하여 더 읽기 쉽고 덜 쉽게 만드는 방법이었습니다. 오류가 발생하기 쉽습니다.

차이점을 확인하기 위해 코드를 리팩터링하셨습니다.

Object obj = "Hello, World!";
if (obj instanceof String str) {
    System.out.println(str.toUpperCase());
}
로그인 후 복사

효과는 즉각 나타났습니다. 코드가 더 깔끔하고 간결해졌습니다. 유형 검사와 캐스트는 이제 모두 한 줄로 동일하고 동일해졌습니다. 마치 코드가 사용자의 언어로 말하는 것 같았고 불필요한 소음 없이 원하는 작업을 정확하게 수행했습니다.

Java 17의 마법: 모든 것을 하나로 묶음

날이 갈수록 이러한 기능을 점점 더 많이 사용하고 숙련된 장인처럼 코드에 적용하게 되었습니다. 여러분은 이러한 작은 변화, 즉 부분의 합보다 더 큰 것을 만들기 위해 협력하는 방식에서 아름다움을 보기 시작했습니다.

오후에는 항상 약간 투박하게 느껴졌던 오래된 코드를 리팩토링하는 데 몰두했습니다. 이는 각 요소마다 고유한 특수 처리가 필요한 혼합 유형의 배열을 처리하는 루프였습니다. 이전에는 각 유형을 확인한 후 명시적인 캐스트를 수행하여 코드가 장황했습니다.

하지만 이제 Java 17의 흐름 범위 지정 및 패턴 일치를 통해 더 나은 방법을 발견했습니다.

public class PatternMatchingDemo {
    public static void main(String[] args) {
        Object[] elements = {"Java", 17, 3.14, "Pattern Matching"};

        for (Object element : elements) {
            if (element instanceof String str) {
                System.out.println("String: " + str.toUpperCase());
            } else if (element instanceof Integer i) {
                System.out.println("Integer: " + (i * 2));
            } else if (element instanceof Double d) {
                System.out.println("Double: " + (d * 2));
            } else {
                System.out.println("Unknown type");
            }
        }
    }
}
로그인 후 복사

각 로직 블록이 자체 범위 내에 포함되고 변수가 특정 흐름에 깔끔하게 연결되어 코드가 간소화되었습니다. 이렇게 작은 변화가 이렇게 큰 영향을 미칠 수 있다는 사실에 놀랐습니다. 반복적인 상용구는 사라지고 딱 맞는 명확성과 단순함으로 대체되었습니다.

결론: 조용한 혁명

오늘의 짐을 꾸리면서 Java 17이 코드를 얼마나 변화시켰는지 반성하지 않을 수 없었습니다. 화려한 새 기능은 아니었지만 그 자체로 조용한 방식으로 강력했습니다. 흐름 범위 지정 및 패턴 일치는 더 효율적일 뿐만 아니라 읽고 유지하기 쉬운 코드를 작성하는 데 도움이 되었습니다.

소프트웨어 개발의 세계에서는 작은 것이 가장 큰 변화를 만드는 경우가 많습니다. 그리고 오늘 여러분은 Java 17의 작은 트릭인 흐름 범위 지정 및 패턴 일치가 한 번에 한 줄씩 코드를 개선하는 데 꼭 필요한 것임을 알게 되었습니다.

위 내용은 작은 조정의 힘: Java의 흐름 범위 지정 및 패턴 일치 공개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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