Die neue Funktion von
Java7 besteht darin, Unterstützung für String im Switch-Codeblock hinzuzufügen. Obwohl nur String hinzugefügt wird, ist sie viel besser als die vorherige Version, die nur Integer unterstützt. und Nicht nur String, alle Objekte können in Schalterblöcken verwendet werden (Korrektur: C# 2.0-Schalter kann nur bool, char, integer, enum, string und entsprechende nullfähige Werttypen verwenden. Ein Schalterausdruck oder eine Fallbezeichnung muss ein bool, char, Zeichenfolge, Integral, Aufzählung oder entsprechender nullfähiger Typ).
;Die try-with-resource-Anweisung
;Diese neue Funktion von Java7 ist C# 2.0-Programmierern sehr vertraut. Beim Codieren einiger Ressourcen, die rechtzeitig freigegeben werden müssen, besteht der übliche Ansatz darin, die Methode close() aufzurufen, um sie freizugeben C# bietet eine einfache Methode, um dieselbe Funktion zu erreichen. Der Code lautet wie folgt:
; Das Folgende ist ein Codefragment:
; using (SqlConnection conn = new SqlConnection ("ConnectionStringHere)) {
;// Do Something
;}
;Der obige Code entspricht:
;Das Folgende ist der Codeausschnitt:
;SqlConnection conn = new SqlConnection("ConnectionStringHere);
;try{
;conn.open();
;// Mach etwas
; } schließlich{
;conn.close();
;}
;Und Java7 implementiert eine ähnliche Funktion, verwendet jedoch anstelle von using try Der Code lautet wie folgt:
;Das Folgende ist ein Codeausschnitt:
; try (BufferedReader br = new BufferedReader (new FileReader (path))) {
;return br.readLine();
;}
Für C# muss using using eine Bedingung erfüllen, das heißt, das in using deklarierte Objekt implementiert die Schnittstelle System. IDisposable: Auf diese Weise kann der Code im Final-Block automatisch die Methode Dispose()
unter dieser Schnittstelle aufrufen und so den Zweck der Ressourcenfreigabe erreichen. Die gleiche Anforderung besteht für Java7, das heißt, das Objekt muss die Schnittstelle java.lang.AutoCloseable oder java.io.Closeable implementieren.
;Die For-Each-Schleife
Java7 implementiert endlich die For-Each-Schleifenfunktion. Obwohl es sich um eine Syntaxerweiterung in Java5 handelt, werde ich diese Erweiterung als neue Funktion von Java7 auflisten, da es in Java6 kein Syntaxupdate gibt. Aber ich verstehe nicht, warum wir immer noch for als Schlüsselwort verwenden, anstatt das foreach-Schlüsselwort wie C# direkt einzuführen. Ist es einfacher zu verstehen? Hier ist die Java-Version des for-each-Codes:
;Das Folgende ist der Codeausschnitt:
;void cancelAll(Collection c) {
;for (TimerTask t: c)
;t.cancel();
;}
;Für die C#-Version lautet der Code wie folgt:
;Das Folgende ist der Codeausschnitt:
;void CancelAll(Collection c) {
;foreach (TimerTask t in c)
;t.Cancel();
;}
Es ist ersichtlich, dass die Implementierung beider keinen großen Unterschied macht, sie ist auch prägnant und klar, aber der Anwendungsbereich ist unterschiedlich. Java7 scheint nur in Sammlungen (einschließlich traditioneller Arrays und generischer Sammlungen) implementiert zu sein, während C# dies kann kann in jeder Implementierung von System.IEnumerable oder seinen generischen Typversionen des System.IEnumerable-Objekts verwendet werden.
Das obige ist der detaillierte Inhalt vonBeispielhafte Analyse neuer Features von Java7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!