>Java >java지도 시간 >여러 개의 반환 문이 있는 Java 메서드의 최종 반환 값은 무엇입니까?

여러 개의 반환 문이 있는 Java 메서드의 최종 반환 값은 무엇입니까?

DDD
DDD원래의
2024-11-21 06:41:10722검색

What is the final return value of a Java method with multiple return statements?

Java의 다중 반환: 최종 반환 값 공개

다음과 같은 흥미로운 Java 코드를 살펴보세요.

String test() {
    try {
        return "1";
    } finally {
        return "2";
    }
}

이 코드는 동일한 메서드 내에서 여러 개의 return 문이 사용되는 특이한 상황을 소개합니다. 질문이 생깁니다. Java 언어 사양은 이러한 시나리오에 대한 최종 반환 값을 명시적으로 정의합니까?

언어 사양

답은 언어 사양에 있습니다. Java 언어 사양에 따르면 최종 반환 값은 항상 마지막으로 실행된 return 문에서 반환된 값입니다. 이 특정한 경우 마지막으로 실행된 반환은 finally 블록 내에서 발생하여 최종 반환 값은 "2"가 됩니다.

JVM 규정 준수

이 사양은 구속력을 갖습니다. 모든 JVM(Java Virtual Machine)에 대해. 이 동작에서 벗어나는 JVM은 언어 사양을 준수하지 않는 것으로 간주됩니다. 따라서 모든 호환 JVM에서 test() 메소드의 최종 반환 값은 항상 "2"일 것이라고 확신할 수 있습니다.

컴파일러 경고 및 권장 사항

언어 사양이 동작을 정의하는 동안 대부분의 컴파일러는 그러한 코드 구성에 대해 경고를 발행합니다. 예를 들어 Eclipse에서는 반환 블록이 절대 실행되지 않을 것이라고 표시할 수 있는데 이는 잘못된 것입니다. 이는 다중 반환이 포함된 코드 작성의 바람직하지 않은 특성을 보여줍니다.

모범 사례

메서드 내에서 다중 반환을 사용하지 않는 것이 좋습니다. 이 관행은 코드 가독성을 복잡하게 하고 예상치 못한 동작이 발생할 가능성을 초래하며 확립된 모범 사례를 위반합니다. 항상 업계 지침을 준수하는 명확하고 간결한 코드를 목표로 하세요.

위 내용은 여러 개의 반환 문이 있는 Java 메서드의 최종 반환 값은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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