Mam klasę, która implementuje AutoCloseable i jest przeznaczona do użycia z nową konstrukcją try-Javy Java 7. Jednak nie mogę znaleźć sposobu, aby zagwarantować, że użytkownik mojej klasy używa try-with-resources. Jeśli to się nie stanie, moja klasa nie będzie w stanie się zamknąć, a złe rzeczy się wydarzą. Czy istnieje jakiś sposób - konstruowanie języka lub w inny sposób - w celu egzekwowania tego? Nawet możliwość wykrycia, czy jestem w bloku try-with-resources, czy mogę rzucić wyjątek, jeśli nie byłaby dobra (chociaż lepiej byłoby skonstruować kompilację czasu).Wymuś wypróbuj-z-zasobami Java 7
Dzięki!
Co to jest użytkownik, który chce zarządzać zamykaniem swojej klasy ręcznie, zamiast automagicznie za pomocą metody try-with-resources? Czy stworzenie metody 'finalizacji', która nazywa się' zamknij', naprawia twój problem? – Jeffrey
Niestety, 'sfinalizuj' nie ma gwarancji, że zostanie wywołane. GC może zdecydować, że tego nie nazwie. – joshlf
W rzeczywistości, wyobrażam sobie, że niewiarygodność 'sfinalizowania' jest prawdopodobnie powodem wprowadzenia try-for-resources. – joshlf