Poszukuje sposobu na to by wydrukowało mi:
1
3
tzn jak mogę ominąć finally ? nie mogę znaleźć odpowiedzi na to
try {
System.out.println("1");
} finally {
System.out.println("2");
}
System.out.println("3");
Poszukuje sposobu na to by wydrukowało mi:
1
3
tzn jak mogę ominąć finally ? nie mogę znaleźć odpowiedzi na to
try {
System.out.println("1");
} finally {
System.out.println("2");
}
System.out.println("3");
Pominąć finally się da, zabijając jvm. Ale żeby wydrukować 13 to chyba nie za bardzo. Oczywiscie pomiając modyfikacje bajtokodu i tego typu operacje.
Można przekierować System.out ;]
może zmienić finally
na catch(Exception e)
?
próbowałem już kilku sposobów, ale nic nie działało, dowiedziałem się że jest to pytanie zadawane na rozmowach kwalifikacyjnych na starszych programistów i zaintrygowało mnie to
Pytania na rozmowach nie zawsze zadawane są po to, by dostać odpowiedź. Czasem pytania mogą nie mieć prawidłowej odpowiedzi, a ich zadawanie ma testować zachowanie kandydata.
Za pomocą java.lang.System.setOut() możesz przekierować System.out. W tym przypadku po System.out.println("1"); możesz przekierować System.out na nullowy (tzn nicnierobiący) PrintStream, a przed System.out.println("3"); przywrócić oryginalny PrintStream.
Dzięki wielkie Wibowit :)