Eclipse und J2SE 5.0

Ab dem Release 3.1 umfasst Eclipse die volle Unterstützung für die neuen Java-Funktionen von J2SE 5.0. Eine der wichtigsten Konsequenzen aus dieser Unterstützung ist, dass Sie davon gar nichts merken -- alles, was bei J2SE 1.4 funktioniert, einschließlich Bearbeiten, Kompilieren, Debug, Schnellkorrekturen, Refactoring, Quellenaktionen, Suchen usw. funktioniert auch problemlos mit den neuen Typen und der Syntax von J2SE 5.0. In diesem Dokument stellen wir Ihnen einige der interessanteren Funktionen vor, auf die Benutzer von Eclipse treffen, wenn sie mit J2SE 5.0 arbeiten.

Beachten Sie, dass beide Versions-Ziffern '1.5' und '5.0' zur Identifizierung der Ausgabe der Standardausgabe der Java 2-Plattform verwendet werden. Version '5.0' ist die Produktversion, während '1.5' die Entwicklerversion ist und auch für die Konformitätsstufe verwendet wird.

Voraussetzungen

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

Dieses Dokument stellt einige der neuen Sprachenfunktionen in J2SE 5.0 kurz vor, aber es ist kein vollwertiges Lernprogramm für diese Funktionen. Weitere Informationen finden Sie hier.

Compiler-Konformitätsstufe

Um die neuen J2SE 5.0-Funktionen zu verwenden, müssen Sie an einem Projekt arbeiten, das die Konformitätsstufe 5.0 und eine JRE der Version 5.0 hat. Neue Projekte erhalten automatisch die Konformitätsstufe 1.5, wenn auf der ersten Seite des Assistent für neues Java-Projekt öffnen Assistenten für neues Java-Projekt eine JRE der Version 5.0 ausgewählt wird:

Assistent für neues Projekt

Um ein vorhandenes J2SE 1.4-Projekt in J2SE 5.0 zu konvertieren, gehen Sie einfach wie folgt vor:
  1. Vergewissern Sie sich, dass eine J2SE 5.0 JRE installiert ist.
  2. Beginnen Sie mit der Verwendung der 5.0-Funktionen in Ihrem Code.
  3. Wenn ein Kompilierungsfehler markiert wird, verwenden Sie die Schnellkorrektur, um die Konformitätsstufe des Projekts zu aktualisieren:

    Schnellkorrektur zur Aktivierung von J2SE 5.0

  4. Zur detaillierteren Steuerung kann die Compiler-Konformitätsstufe global für einen Arbeitsbereich eingestellt werden (auf der Benutzervorgabenseite Benutzervorgabenseite für Java-Compiler öffnen Java > Compiler) oder individuell für jedes Projekt (wählen Sie dazu im Kontextmenü des Projekts Eigenschaften > Java-Compiler aus).

    Eigenschaftenseite für Compiler

Projekte mit unterschiedlichen Konformitätsstufen können gleichzeitig in dem Arbeitsbereich vorhanden sein und voneinander abhängen. Sie können auch die Arten der Kompilierungswarnungen und -fehler, die für jedes Projekt erstellt werden, mithilfe von Eigenschaften > Java-Compiler > Fehler/Warnungen genauer einstellen. Die Abschnitte Generische Typen und Anmerkungen enthalten Optionen, die in J2SE 5.0 hinzugekommen sind.

Generische Typen

Mithilfe generischer Typen können Objekte derselben Klasse sicher mit Objekten eines anderen Typs arbeiten. So ermöglichen sie z.B. Kompilierzeitzusicherungen, dass ein List<String> immer Zeichenfolgen enthält und ein List<Integer> immer Ganzzahlen enthält.

Überall dort, wo Eclipse einen nicht generischen Typ bearbeitet, kann es einen generischen Typ bearbeiten: Weiterhin wurde ein neues Refactoring hinzugefügt: Generische Typargumente ableiten kann Typparameter für jeden Typverweis in einer Klasse, einem Paket oder einem vollständigen Projekt ableiten.

'Generische Typargumente ableiten' aufrufen

Aufruf der Refractoringverfahren:

'Generische Typargumente ableiten' aufgerufen

Eclipse stellt neue Optionen zum Suchen nach Verweisen auf generische Typen zur Verfügung. Beachten Sie dieses Beispiel:

Beispiel mit vier unterschiedlichen parametrisierten Instanzerstellungen einer Liste

Durch die Auswahl des Verweises auf Liste<Ganzzahl> und die Verwendung von Suchen > Verweise > Projekt im Kontextmenü werden die Listentypen in allen vier Zeilen hervorgehoben:

Ohne Filter suchen

Mithilfe des Menüs der Ansicht 'Suchen' können die Ergebnisse gefiltert werden:

Der Filter Nicht kompatible Typenargumente lässt nur Verweise auf Typen zu, die mit dem ausgewählten Typ zuordnungskompatibel sind:

Inkompatible filtern

Der Filter Ungenaue Typenargumente lässt nur Verweise auf Typen mit exakt derselben Signatur zu:

Ungenauer Filter

Anmerkungen

Anmerkungen ordnen Metadaten darüber zu, wie Java-Typen und -Methoden verwendet und in der Java-Quelle dokumentiert werden. Sie können dann die Kompilierung beeinflussen oder zur Laufzeit abgefragt werden. Beispiel: @Override löst eine Kompilierungswarnung aus, wenn die Methode mit Anmerkung nicht eine Methode in einer Superklasse überschreibt:

Anmerkung überschreiben

Alles, was Sie mit einem Java-Typ machen können, können Sie auch mit einer Anmerkung machen:

Eine sehr nützliche Anmerkung mit voller Unterstützung in Eclipse ist @SuppressWarnings. Zum Beispiel die Berücksichtigung einer nicht öffentlichen Methode, die gegenwärtig nicht verwendet wird, die Sie aber nicht löschen würden:

Warnung: Nicht verwendete private Methode

Bei Aufruf der Schnellkorrektur zu der Warnung wird das Hinzufügen einer Anmerkung @SuppressWarnings vorgeschlagen:

SuppressWarnings vorgeschlagen

Durch Auswahl der Schnellkorrektur wird die Anmerkung hinzugefügt. Der Eclipse-Compiler berücksichtigt die Anmerkung durch Löschen der Warnung zu foo:

SuppressWarnings eingefügt

Aufzählungen

Aufzählungen sind Typen, von denen zur Laufzeit durch eine bekannte, endliche Gruppe von Objekten eine Instanz erstellt wird:

Aufzählungstyp

Noch einmal sei erwähnt, dass alles, was Sie mit einer Java-Klasse machen können, auch mit einer Aufzählung gemacht werden kann:

Autoboxing

Autoboxing und Auto-Unboxing ermöglichen eine elegante Syntax, wenn primitive Typen einem Objektverweis zugeordnet oder aus einem Objektverweis abgerufen werden:

Autoboxing hervorgehoben

Die Quellenbearbeitungskomponenten von Eclipse verarbeiten Autoboxing nahtlos und geben die korrekten Typen an die neuen lokalen Variablen und die korrekten Codeunterstützungen. Zum besseren Verständnis des Codes können Sie Instanzen von Autoboxing- oder Auto-Unboxing-Konvertierungen mit Markierungen versehen:

Erweitert für Schleife

Für den häufigen Fall der Bearbeitung eines jeden Elements in einem Bereich oder einer Objektgruppe bietet J2SE 5.0 eine neue, sauberere Syntax. Eclipse stellt eine 'foreach'-Codeschablone zur Verfügung, die automatisch die zu iterierende Objektgruppe ermitteln kann:

'foreach'-Schablone vorgeschlagen

Die Auswahl der Schablone führt zu:

'foreach'-Schablone eingefügt

Außerdem stellt Eclipse eine Schnellhilfe "In 'erweitert für Schleife' umwandeln" zur Verfügung, um, wenn möglich, for-Schleifen des Stils 1.4 zu aktualisieren.

Statische Importe

Mit statischen Importen können Sie statische Felder und Methoden aus anderen Klassen ohne Qualifikation verwenden.

Die Inhaltshilfe im Java-Editor kann solche statischen Member vorschlagen, und sie fügt, falls erforderlich, einen statischen Import ein. Damit Sie solche Vorschläge erhalten können, konfigurieren Sie die Favoriten für statischen Import auf der Benutzervorgabenseite unter Benutzervorgabenseite 'Favoriten' für die Inhaltshilfe Java > Editor > Inhaltshilfe > Favoriten.

J2SE 1.4-Code nach 5.0 konvertieren

Eclipse stellt die folgenden Tools bereit, die die Umsetzung von J2SE 1.4-Code in 5.0-Code erleichtern: Viel Spaß beim Codieren!