public class Test2 {
public static void main(String[] args) {
Test2 obj=new Test2();
String a=obj.go();
System.out.print(a);
}
public String go() {
String q="hii";
try {
return q;
}
finally {
q="hello";
System.out.println("finally value of q is "+q);
}
}
go()
에서 돌아온 후 hii
이 인쇄되는 이유는 왜 finally 블록에서 값이 "hello"로 변경 되었습니까?결국 이상한 행동?
프로그램의 출력은 당신이 마지막으로 차단하려면에 q
의 값을 변경하기 전에 q
에서 평가 된 값을 반환하기 때문입니다
finally value of q is hello
hii
다음을 읽는 것이 좋습니다. http://stackoverflow.com/questions/65035/in-java-does-return-trump-finally –
로컬 변수'q'의 값이 'hello'로 변경되었습니다. 예. 하지만 당신이 반환 한 것은 "hii"였습니다. – maksimov
제 새로운 대답을보세요 ...이 개념을 더 상세하게하려고합시다 .. – Ahmad