Sobes.tech
Junior — Middle

როგორ უზრუნველვყოთ რესურსების ავტომატური განთავისუფლება პროგრამაში?

sobes.tech AI

პასუხი AI-სგან

Java-ში რესურსების ავტომატური განთავისუფლება ჩვეულებრივ უზრუნველყოფილია try-with-resources კონსტრუქციით, რომელიც შემოიღო Java 7-ში. ეს საშუალებას აძლევს ავტომატურად დახუროს AutoCloseable ინტერფეისს ასრულებადი რესურსები (მაგალითად, შესვლის/გამოსვლის ნაკადები, მონაცემთა ბაზის კავშირები და ა.შ.) try ბლოკის დასრულების შემდეგ, მიუხედავად იმისა, რომ ბლოკში წარმოიქმნება გამონაკლისი.

მაგალითი:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String line = reader.readLine();
    System.out.println(line);
} catch (IOException e) {
    e.printStackTrace();
}
// reader ავტომატურად იხურება აქ

წინა დროს რესურსების განთავისუფლებისთვის გამოიყენებოდა finally ბლოკი, სადაც explicitly გამოიძახებოდა close() მეთოდი. მაგრამ try-with-resources კოდი უფრო სუფთა და უსაფრთხოა.