AutoCloseable
được giới thiệu trong jdk1.7 và Cloesable
đã có trong jdk1.5.Tại sao Java7 giới thiệu AutoCloseable đặc biệt?
Và Theo https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
Các thử-với-nguồn tuyên bố đảm bảo rằng mỗi tài nguyên được đóng ở phần cuối của báo cáo kết quả. Bất kỳ đối tượng nào triển khai java.lang.AutoCloseable, bao gồm tất cả các đối tượng thực hiện java.io.Closeable, có thể được sử dụng làm tài nguyên.
Vì vậy, trường hợp Closeable
đã có thể được coi là tài nguyên trong tuyên bố try-with-resources
. Điều này là chắc chắn, kể từ khi Closeable
kéo dài từ AutoCloseable
.
Câu hỏi của tôi là lý do tại sao java đặc biệt giới thiệu AutoCloseable
, tại sao họ không chỉ thực hiện được để được hỗ trợ trong try-with-resources
, có cách nào khác để sử dụng AutoCloseable ngoại trừ try-with-resources
?
Cảm ơn bạn rất nhiều !! Tôi nghĩ lý do đầu tiên là thuyết phục hơn. Nó sẽ là tuyệt vời nếu bạn có thể cập nhật câu trả lời của bạn và cho chúng ta một ví dụ về tài nguyên có 'close()' không ném 'IOException'. – Jaskey
@Jaskey: 'ResultSet' là một ví dụ tốt, trong đó' close() 'ném' SqlException'. –