Jaki jest najlepszy sposób naśladowania zasobów próbnych w Javie 6?

Okazuje się, że prawie nikt nie zamyka poprawnie zasobów Java. Programiści albo nie używajątry-finally w ogóle blokować lub po prostu wstawićresource.close() wfinally co również jest nieprawidłowe (ponieważThrowable zclose() może cieńThrowable z bloku try). Czasami wkładają coś takiegoIOUtils.closeQuietly() z jest tylko poprawneInputStream, ale nie dlaOutputStream. try-with-resources rozwiązuje wszystkie te problemy, ale nadal istnieje ogromna liczba projektów napisanych w Javie 6.

Jaki jest najlepszy sposób naśladowaniatry-with-resources w Javie 6? Teraz używamBliżej Guawy, która jest lepsza niż nic, ale wciąż znacznie brzydsza niżtry-with-resources. Istnieje również wzorzec zwany wzorcem pożyczki, ale brak lambd w Javie czyni ten wzór bardzo uciążliwym. Czy jest lepszy sposób?

questionAnswers(3)

yourAnswerToTheQuestion