Heim  >  Artikel  >  Java  >  So schließen Sie Ressourcen mithilfe von Try-with-Resources in Java 7 ordnungsgemäß

So schließen Sie Ressourcen mithilfe von Try-with-Resources in Java 7 ordnungsgemäß

WBOY
WBOYOriginal
2023-07-29 10:09:231658Durchsuche

So verwenden Sie Try-with-Resources, um Ressourcen in Java 7 ordnungsgemäß zu schließen.

In Java müssen wir häufig einige Ressourcen verwenden, z. B. Dateien, Netzwerkverbindungen, Datenbankverbindungen usw. Nach der Verwendung dieser Ressourcen müssen wir diese Ressourcen im Programm explizit schließen, um die Ressourcen freizugeben und Speicherverluste zu vermeiden. In Java 7 wird ein neuer Syntax-Zucker – try-with-resources – eingeführt, der es uns ermöglicht, Ressourcen eleganter zu schließen.

Vor Java 7 haben wir normalerweise Try-Catch-Finally verwendet, um Ressourcen zu schließen. Wenn wir beispielsweise eine Datei lesen, könnte der Code so aussehen:

FileInputStream fis = null;
try {
    fis = new FileInputStream("file.txt");
    // 读取文件的操作
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (fis != null) {
        try {
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Diese Methode scheint umständlicher zu sein und erfordert das Schreiben von zusätzlichem Code, um das Schließen der Ressource zu handhaben, und es können Ausnahmen auftreten, die dazu führen, dass die Ressource nicht rechtzeitig geschlossen wird . .

In Java 7 können wir die try-with-resources-Anweisung verwenden, um Ressourcen präziser zu schließen. Mit try-with-resources können wir die Schließoperation in die Klammern der try-Anweisung einfügen, und Java schließt die Ressource am Ende der try-Anweisung automatisch. Der obige Code kann beispielsweise wie folgt umgeschrieben werden:

try (FileInputStream fis = new FileInputStream("file.txt")) {
    // 读取文件的操作
} catch (IOException e) {
    e.printStackTrace();
}

Im obigen Code verwenden wir try-with-resources, um ein FileInputStream-Objekt zu deklarieren. Wenn die try-Anweisung endet, ruft Java automatisch die close-Methode von FileInputStream auf, um das zu schließen Ressource. Wenn im Try-Anweisungsblock eine Ausnahme auftritt, fängt die Catch-Anweisung die Ausnahme ab und behandelt sie.

try-with-resources kann auch mehrere Ressourcen gleichzeitig deklarieren und wird nacheinander in der Reihenfolge der Deklaration geschlossen. Beispielsweise lesen wir den Inhalt von zwei Dateien gleichzeitig:

try (FileInputStream fis1 = new FileInputStream("file1.txt");
    FileInputStream fis2 = new FileInputStream("file2.txt")) {
    // 读取文件的操作
} catch (IOException e) {
    e.printStackTrace();
}

Im obigen Code verwenden wir Semikolons, um die Deklarationen mehrerer Ressourcen zu trennen, und sie werden am Ende der try-Anweisung nacheinander geschlossen.

Darüber hinaus können wir auch benutzerdefinierte Klassen verwenden, um Ressourcen automatisch zu schließen. Sie müssen lediglich die AutoCloseable-Schnittstelle in Ihrer benutzerdefinierten Klasse implementieren und die Close-Methode überschreiben. Zum Beispiel erstellen wir eine benutzerdefinierte Netzwerkverbindungsklasse:

public class MyConnection implements AutoCloseable {
    public MyConnection() {
        // 进行连接的操作
    }
    
    // 执行一些操作
    
    @Override
    public void close() throws Exception {
        // 关闭连接的操作
    }
}

Wenn wir diese benutzerdefinierte Klasse verwenden, können wir sie dann direkt in der try-with-resources-Anweisung deklarieren:

try (MyConnection connection = new MyConnection()) {
    // 使用connection进行一些操作
} catch (Exception e) {
    e.printStackTrace();
}

Am Ende der try-with-resources-Anweisung , Java ruft automatisch die Close-Methode der MyConnection-Klasse auf, um die Verbindung zu schließen.

Zusammenfassend lässt sich sagen, dass Try-with-Resources eine elegante Möglichkeit zum Schließen von Ressourcen ist, die uns dabei helfen kann, Ressourcen präziser im Code freizugeben und häufige Probleme mit Ressourcenlecks zu vermeiden. Es kann nicht nur einige in Java integrierte Ressourcen automatisch schließen, sondern auch benutzerdefinierte Klassen verwenden, um das automatische Schließen von Ressourcen zu erreichen. Beim Schreiben von Code sollten wir aktiv Try-with-Resources-Anweisungen verwenden, um unseren Code zu verbessern und die Lesbarkeit und Robustheit des Codes zu verbessern.

Das obige ist der detaillierte Inhalt vonSo schließen Sie Ressourcen mithilfe von Try-with-Resources in Java 7 ordnungsgemäß. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn