"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 마지막으로 블록이 Java에서 메소드의 반환 값에 어떤 영향을 미칩니 까?

마지막으로 블록이 Java에서 메소드의 반환 값에 어떤 영향을 미칩니 까?

2025-02-06에 게시되었습니다
검색:293

How Does a Finally Block Affect the Return Value of a Method in Java?

public class test {. 개인 문자열 S; 공개 문자열 foo () { 노력하다 { s = "dev"; 반환 s; } 마지막으로 { s = "변수 s"; System.out.println ( "최종 블록의 항목"); } } public static void main (String [] xyz) { test obj = new test (); System.out.println (obj.foo ()); } }

실행되면 코드는 "최종 차단"이지만 "dev"를 반환합니다. 이는 리턴 값이 시도 블록에서 리턴 명령문의 실행에 의해 결정되기 때문입니다. 마침내 블록에서 'S'로의 변경은 시도 블록이 완료된 후에 발생하므로 리턴 값에 반영되지 않습니다. 그 자체로, 대상의 ''참조의 변화가 아닙니다. 's'가 변이 가능한 객체에 대한 참조이고 내용이 마침내 블록에서 변경되면, 이러한 변경 사항은 반환 값으로 보일 것입니다. 섹션 14.20.2의 행동. 시도 블록과 최종 블록에 리턴 문이 있으면 Frinkally 문의 경우, 최종 블록의 반환 값이 우선합니다. 이는 반환 명령문의 실행이 블록의 갑작스러운 종료로 간주되기 때문입니다.

요약하려면 메소드의 반환 값은 시도 블록 내의 반환 문에 의해 결정됩니다. 값 또는 객체 수정을 통한 마지막 블록에서 변수에 대한 변경 사항은 마지막으로 블록에 반환 문이 포함되어 있지 않으면 반환 값에 영향을 미치지 않습니다.
            
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3