아래와 같이 간단한 Java 클래스가 있습니다.
public class Test {
private String s;
public String foo() {
try {
s = "dev";
return s;
}
finally {
s = "override variable s";
System.out.println("Entry in finally Block");
}
}
public static void main(String[] xyz) {
Test obj = new Test();
System.out.println(obj.foo());
}
}
이 코드의 출력은 다음과 같습니다.
Entry in finally Block
dev
블록 s
에서 재정의되지 않고 finally
인쇄 출력을 제어 하는 이유는 무엇 입니까?
s
값을 변경하기 전에 돌아 옵니다.