Eclipse und Java 7

Ab dem Release 3.7.1 umfasst Eclipse die volle Unterstützung für die neuen Java-Sprachenfunktionen von Java SE 7. Eine der wichtigsten Konsequenzen dieser Unterstützung besteht darin, dass sie vollkommen transparent abläuft. Alle Funktionen, die in Java 6 problemlos funktionierten (einschließlich Bearbeiten, Kompilieren, Debug, Schnellkorrekturen, Refactoring, Quellenaktionen, Suchen usw.), können mit der neuen Syntax von Java 7 reibungslos weiterverwendet werden. In diesem Dokument stellen wir Ihnen einige der interessanteren Funktionen vor, auf die Benutzer von Eclipse treffen, wenn sie mit Java 7 arbeiten.

Beachten Sie, dass beide Versionsnummern ('1.7' und '7') zur Identifizierung des Release der Standard Edition der Java-Plattform verwendet werden. Version '7' ist die Produktversion, während Version '1.7' die Entwicklerversion ist und auch für die Compiler-Konformitätsstufe verwendet wird.

Voraussetzungen

Um mit Java 7 konformen Code zu entwickeln, benötigen Sie eine Java 7-Java Runtime Environment (JRE). Wenn Sie Eclipse zum ersten Mal mit einer Java 7-JRE starten, wird diese JRE in Zukunft standardmäßig verwendet. Andernfalls müssen Sie die Benutzervorgabenseite Benutzervorgabenseite für installierte JRE öffnen Java > Installierte JREs verwenden, um sie mit Eclipse zu registrieren.

Sie können auch eine Java 7-Ausführungsumgebung konfigurieren. Verwenden Sie hierzu die Benutzervorgabenseite Öffnet die Benutzervorgabenseite 'Ausführungsumgebungen' Java > Installierte JREs > Ausführungsumgebungen:

Benutzervorgabenseite 'Ausführungsumgebungen'

Um ein vorhandenes Java-Projekt in Java 7 zu konvertieren, müssen Sie die Eigenschaften der JRE-Systembibliothek öffnen und dann die Ausführungsumgebung: JavaSE-1.7 auswählen.

Eigenschaftendialog

Die Beschreibung der API für die Ausführungsumgebung von Java 7 steht über die entsprechende Update-Site zur Verfügung. Nach der Installation können Sie ungültige Verweise auf Java 7-Systembibliotheken feststellen.

Benutzervorgabenseite 'API-Fehler/-Warnungen' mit der neuen Java 7 EE-Beschreibung

Java 7-Sprachenfunktionen

Java 7 wird mit einer Gruppe kleiner Verbesserungen für die Java-Sprache (unter dem Namen 'Project Coin'), einem neuen Bytecode zum dynamischen Aufruf von Methoden und vielen Zusätzen zu den Bibliotheken ausgeliefert. Dieses Dokument stellt einige der neuen Sprachenfunktionen in Java 7 kurz vor, es handelt sich dabei aber nicht um ein vollwertiges Lernprogramm für diese Funktionen. Weitere Informationen finden Sie hier.

Verbesserte Type Inference für generische Instanzerstellung (Raute)

Diese Sprachenänderung ermöglicht es Ihnen, die explizite Angabe von Typargumenten für Konstruktoren für parametrisierte Klassen in vielen Situationen zu übergehen. Der Compiler leitet die übergangenen Typargumente auf der Basis des erwarteten Typs ab.

Wenn möglich, fügt die Inhaltshilfe für Konstruktoraufrufe eine Raute anstelle eines expliziten Typarguments ein.

Inhaltshilfe nach 'new HashMap'

Ergebnis:

Inhaltshilfe hat 'new HashMap<>()' eingefügt

Der Compiler kann auch die redundante Spezifikation von Typargumenten erkennen, die über die Schnellkorrektur Typargumente entfernen entfernt werden kann.

Redundante Spezifikation von Typargumenten

Diese Option ist standardmäßig inaktiviert, kann jedoch auf der Benutzervorgabenseite Öffnet die Benutzervorgabenseite 'Fehler/Warnungen' Java > Compiler > Fehler/Warnungen aktiviert werden:

Warnung bei redundanten Typargumenten

Zusätzlich können Sie für eine Raute über eine Schnellunterstützung abgeleitete Typargumente einfügen.

Abgeleitete Typargumente einfügen

Hinweis: Dies funktioniert auch als Schnellkorrektur in 1.5- und 1.6-Code, wo die Raute ein Syntaxfehler ist.

Multi-catch

In Java 7 können Sie mehrere Ausnahmebedingungstypen mit einem einzigen catch-Block abfangen.

Vorkommen markieren kann im Java-Editor verwendet werden, um Anweisungen hervorzuheben, die eine bestimmte Ausnahmebedingung auslösen.

Vorkommen markieren

Die Aktion Quelle > Umgeben mit > try/multi-catch-Block ermöglicht Ihnen die Einbettung ausgewählter Anweisungen mit einem try/multi-catch-Block. Dies ist auch als Schnellkorrektur In try/multi-catch einbetten verfügbar, wenn mehrere nicht abgefangene Ausnahmebedingungen vorhanden sind.

In try/multi-catch einbetten

Die Schnellkorrektur Ausnahmebedingungen zu vorhandener catch-Klausel hinzufügen ermöglicht Ihnen das Hinzufügen nicht abgefangener Ausnahmebedingungen zu einer vorhandenen catch-Klausel.

Ausnahmebedingungen zu vorhandener catch-Klausel hinzufügen

Die Schnellunterstützung Separate catch-Blöcke verwenden ermöglicht es Ihnen, eine multi-catch-Klausel durch einzelne catch-Blöcke zu ersetzen, und zwar einen für jede Ausnahmebedingung in der multi-catch-Klausel.

Separate catch-Blöcke verwenden

Die Schnellunterstützung Ausnahmebedingungen nach separatem catch-Block versetzen ermöglicht es Ihnen, eine oder mehrere ausgewählte Ausnahmebedingungen aus einer multi-catch-Klausel auszuwählen.

Ausnahmebedingungen nach separatem catch-Block versetzen

Die Schnellunterstützung catch-Blöcke kombinieren ermöglicht es Ihnen, separate catch-Blöcke in einem einzigen multi-catch-Block zu kombinieren. Die Schnellunterstützung wird nur dann angeboten, wenn die Hauptteile aller catch-Blöcke identisch sind.

catch-Blöcke kombinieren

Der Compiler gibt einen Fehler aus, wenn eine Ausnahmebedingung in einer multi-catch-Klausel bereits durch eine andere Ausnahmebedingung abgefangen wurde. Die Schnellkorrektur Ausnahmebedingung entfernen ermöglicht es Ihnen, diese Ausnahmebedingung zu entfernen.

Ausnahmebedingung entfernen

Außerdem gibt es Zeilenumbruchoptionen im Formatierungsprogramm für die multi-catch-Syntax. Diese Optionen können auf der Benutzervorgabenseite Öffnet die Benutzervorgabenseite 'Formatierungsprogramm' Java > Codedarstellung > Formatierungsprogramm unter Zeilenumbruch > Anweisungen > 'multi-catch' konfiguriert werden.

try-with-resources-Anweisung

Die try-with-resources-Anweisung stellt sicher, dass jede Ressource (java.lang.AutoCloseable) am Ende der Anweisung geschlossen wird.

Vorkommen markieren im Java-Editor kann die try-with-resources-Syntax verarbeiten. Das schließende '}' einer try-with-resources-Anweisung ist als Methodenaustrittpunkt markiert, wenn der implizite close()-Aufruf eine Ausnahmebedingung auslöst. Die entsprechende Ressourcenvariable ist ebenfalls hervorgehoben.

Vorkommen markieren

Der Compiler erkennt nicht behandelte Ausnahmebedingungen, die durch den automatischem Aufruf von close() für eine Ressource ausgelöst werden.

Erkennung nicht behandelter Ausnahmebedingungen, die durch den automatischem Aufruf von close() ausgelöst wurden

Der Compiler kann die Verwendung der try-with-resources-Anweisung vorschlagen, wenn die Ressourcen explizit geschlossen, jedoch nicht in den try-with-resources-Anweisungen deklariert wurden.

Compilerwarnung für eine Ressource, die mit try-with-resource verwaltet werden sollte

Diese Option ist standardmäßig inaktiviert, kann jedoch auf der Benutzervorgabenseite Öffnet die Benutzervorgabenseite 'Fehler/Warnungen' Java > Compiler > Fehler/Warnungen aktiviert werden:

Ressource nicht via try-with-resource-Warnung verwaltet

Außerdem gibt es im Formatierungsprogramm Zeilenumbruch- und Leerzeichenoptionen für die try-with-resources-Syntax. Diese Optionen können auf der Benutzervorgabenseite Öffnet die Benutzervorgabenseite 'Formatierungsprogramm' Java > Codedarstellung > Formatierungsprogramm unter Zeilenumbruch > Anweisungen > 'try-with-resources' und Leerzeichen > Steueranweisungen > 'try-with-resources' konfiguriert werden.

Vereinfachter Varargs-Methodenaufruf

Der Java 7-Compiler generiert eine Warnung auf der Deklarationssite einer varargs-Methode oder eines Konstruktors mit einem formalen nicht-reifizierbaren varargs-Parameter. Diese Warnung kann mit der Anmerkung @SafeVarargs unterdrückt werden.

Die Schnellkorrektur @SafeVarargs hinzufügen kann für Warnungen zu potenzieller Heap-Pollution bei Methodendeklarationen verwendet werden.

@SafeVarargs hinzufügen

Diese Schnellkorrektur wird auch über Aufrufsites angeboten.

@SafeVarargs zu Deklaration hinzufügen

Die Schnellkorrektur @SafeVarargs entfernen wird für die falsche Verwendung der Anmerkung @SafeVarargs angeboten.

@SafeVarargs entfernen

@SafeVarargs entfernen

Strings in Switch

Sie können ein String-Objekt in dem Ausdruck einer switch-Anweisung benutzen.

Die Schnellunterstützung 'switch' in 'if-else' konvertieren kann für Zeichenfolgen in einem Switch verwendet werden.

Schnellunterstützung 'switch' in 'if-else' konvertieren

Beachten Sie, dass die Schnellunterstützung eine NullPointerException im resultierenden Code vermeidet.

Binäre Literale und Unterstreichungszeichen in numerischen Literalen

In Java 7 können die Integraltypen (byte, short, int und long) auch mithilfe eines Binärzahlsystems ausgedrückt werden. Zusätzlich kann eine beliebige Anzahl von Unterstreichungszeichen (_) an beliebiger Stelle zwischen den Ziffern in einem numerischen Literal angegeben werden.

Die Funktion zum Ändern des Werts einer Variablen während des Debuggings unterstützt Unterstreichungszeichen in numerischen Literalen und Binärliteralen:

Beispiel der Zuordnung eines Binärliterals mit Unterstreichungszeichen zu 'int'

Polymorphe Methoden

Javadoc-Kurzinfos für Verweise auf polymorphe Methoden zeigen die tatsächlich verwendete Methodensignatur.

Polymorphe Methodensignatur in Javadoc-Kurzinfo

Viel Spaß beim Codieren!