Einführung in Eclipse 3.1 und J2SE 5.0

Eclipse 3.1 beinhaltet die volle Unterstützung für die neuen Funktionen von J2SE 5.0 (Codename "Tiger"). 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.

Vorbedingungen

Um einen mit J2SE 5.0 konformen Code zu entwickeln, benötigen Sie eine J2SE 5.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 den Dialog Installierte JRE's (Fenster > Benutzervorgaben > Java > Installierte JRE's) verwenden, um sie mit Eclipse zu registrieren.

Dieses Dokument stellt einige der neuen Sprachenfunktion in J2SE 5.0 sehr kurz vor, aber es ist kein ordnungsgemäßes Lernprogramm für diese Funktionen.

Compiler-Konformitätsstufe

Um die neuen J2SE 5.0-Funktionen zu verwenden, müssen Sie an einem Projekt arbeiten, dessen Konformitätsstufe 5.0 aktiviert ist. Neue Projekte können auf der ersten Seite des Assistenten Neu > Projekt einfach als 5.0-konform markiert werden:

Assistent '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 Compilerfehler angezeigt wird, verwenden Sie die Schnellkorrektur, um die Konformitätsstufe des Projekts zu aktualisieren:

    Schnellkorrektur zur Aktivierung von J2SE 5.0

ZU einer detaillierteren Steuerung kann die Konformitätsstufe des Compilers global für einen Arbeitsbereich eingestellt werden (Fenster > Benutzervorgaben > Java > Compiler) oder individuell für jedes Projekt (im Kontextmenü des Projekts wählen Sie Eigenschaften > Java-Compiler) aus. Projekte mit unterschiedlichen Konformitätsstufen können gleichzeitig in dem Arbeitsbereich vorhanden sein und voneinander abhängen. Sie können auch die Arten der Compiler-Warnungen und -Fehler, die für jedes Projekt ersteltl werden, genauer mit Hilfe von Eigenshcaften > Java-Compiler > Fehler/Warnungen > J2SE 5.0 Optionen einstellen.

Generische Typen

Mit Hilfe 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:

Aufruf von 'Generische Typargumente ableiten'

Aufruf der Refractoringverfahren:

'Generische Typargumente ableiten' aufgerufen

Eclipse 3.1 stellt neue Optionen bei der Suche nach Verweisen auf generische Typen zur Verfügung. Beachten Sie dieses Beispiel:

Beispiel mit vier verschiedenen Exemplarerstellungen von Liste mit Parameterangabe

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

Suchen ohne Filter

Mit Hilfe des Menüs der Sicht 'Suchen' können die Ergebnisse gefiltert werden:

Inkompatible filtern lässt nur Verweise auf Typen zu, die mit dem ausgewählten Typ zuordnungskompatibel sind:

Inkompatible filtern

Ungenaue filtern lässt nur Verweise auf Typen mit exakt derselben Signatur zu:

Ungenaue filtern

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 Compiler-Warnung aus, wenn die Methode mit Anmerkung nicht eine Methode in einer Superklasse überschreibt:

Anmerkung 'Override' (Ü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 nicht öffentliche 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 ein Exemplar erstellt wird:

enum-Typ

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 Basiselementtypen 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 Unterstützungen für Code. Zum Verständnis des Codes ist es auch möglich, Exemplare von Autoboxing oder Auto-Unboxing als Kompilierwarnungen zu markieren Fenster > Benutzervorgaben > Java > Compiler > Fehler/Warnungen > J2SE 5.0 Optionen > Umsetzungskonventionen (Boxing und Unboxing)), oder sie mit Hilfe der Farbgebung für Syntax hervorzuheben (Fenster > Benutzervorgaben > Java > Editor > Farbgebung für Syntax > Java > Automatisches(Un)Boxing für Ausdrücke):

Aktivieren der Hervorhebung für Autoboxing

Erweitert für Schleife

Für den häufigen Fall der Bearbeintung eines jeden Elements in einem Bereich oder einer Objektgruppe bietet J2SE 5.0 eine neue, sauberere Syntax. Eclipse 3.1 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

Eclipse 3.1 stellt auch eine Schnellunterstützung "In 'erweitert für Schleife' umwandeln" zur Verfügung, um, wenn möglich, for-Schleifen des Stils 1.4 zu aktualisieren.

Andere

Alle anderen Komponenten von J2SE 5.0 werden durch die Editier-, Such- und Codebearbeitungstools von Eclipse flexibel gehandhabt:

Viel Spaß beim Codieren!