Donnerstag, 24. Mai 2012


Artikel

Juni 2010 | Artikel

Eclipse Helios: Was gibt’s Neues in JDT?

(Link zum Artikel: http://www.entwickler.de/jaxenter//003162)

Feinschliff

Text: Marc Teufel
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Mit dem Helios-Release hat die Eclipse Foundation im Juni 2010 bereits zum fünften Mal ihr sogenanntes Simultan-Release veröffentlicht. Nach Callisto, Europa, Ganymede und Galileo sind es in diesem Jahr schon 39 Projekte, die als Bestandteil des Helios Release-Trains veröffentlicht wurden. Und wie jedes Jahr im Juni sind auch diesmal sowohl die Eclipse Platform als auch die Java Development Tools (JDT) wieder in jeweils aktualisierten Fassungen dabei.
Teil 1   Teil 2   Teil 3   

Eclipse Platform
Bei der Eclipse Platform handelt es sich um das grundlegende Rahmenwerk, auf dem alle Werkzeuge aus dem Eclipse-Universum aufsetzen. Völlig unabhängig davon, ob man Software-Entwicklung unter Eclipse etwa mit einer C++ oder Java-IDE betreibt, ist die Plattform immer dieselbe. Die entsprechende IDE setzt mit ihren Plug-ins lediglich auf diesen Grundstock auf. Die Entwickler, die an dieser grundlegenden Plattform arbeiten, legen mit der aktuellen Fassung eine Version vor, die sich nun auf einer sehr großen Anzahl von Betriebssystemen sowohl im 32- als auch 64-bit-Modus installieren lässt. Das gilt für die Betriebssysteme aus dem Hause Microsoft genauso wie alle Arten von unixoiden Betriebssystemen (Solaris, Linux, Mac OS X). So ist unter anderem nun Unterstützung für PowerPC 64-bit und Ubuntu (in der aktuellen Version 10.04) hinzugekommen.

Die Ubuntu-Unterstützung ist für Eclipse insofern wichtig, weil es sich bei beim 10.04er-Ubuntu um ein sogenanntes LTS-Release handelt, also eine Version mit langfristiger Unterstützung (Long term support) seitens des Herstellers. Deshalb muss davon ausgegangen werden, dass diese Ubuntu-Version eine sehr weite Verbreitung finden wird, was letztlich auch für die Eclipse Foundation die Motivation gewesen sein dürfte, eine gute Integration in dieses Betriebssystem anzubieten. Aber auch das Zusammenspiel von Eclipse mit dem (im Vergleich zu Windows Vista) deutlich besser angenommenen Windows 7 ist im Detail verbessert worden. So wurde eine Funktion hinzugefügt, die Fortschrittsbalken nicht nur innerhalb von Eclipse darstellt, sondern den aktuellen Zustand des Fortschritts auch in der neuen Windows-7-Taskleiste darstellt und animiert. Des Weiteren wurde die Platform dahingehend erweitert, dass man nun endlich Dateien direkt von der Kommandozeile in Eclipse öffnen kann. Verknüpft man beispielsweise .java- oder .xml-Dateien mit der Eclipse-Executable, werden diese Dateien bei Doppenklick in Eclipse geöffnet. Läuft bereits eine Instanz von Eclipse, wird die entsprechende Datei in der laufenden Instanz geöffnet.

In den letzten Jahren ist gerade der Bereich der Import- und Export-Wizards immer umfangreicher geworden. Für eine Vielzahl von Aufgaben existieren verschiedene Wizards zum Importieren und Exportieren. Um einen speziellen Wizard aus einem bestimmten Bereich leichter zu finden, kann man diese jetzt auch mit Hilfe von Schlüsselwörtern filtern. Wählt man beispielsweise im Projekt-Explorer die Funktion EXPORT... und gibt dann als Schlüsselwort „jar“ ein, werden nur noch die Exporter angezeigt, mit denen man Jar-Files exportieren kann.

Ressourcen besser finden
Der Open Ressource-Dialog, schon immer eine echte Innovation, um mal eben schnell eine XML-Konfiguration oder ein Ant-Skript im Projekt zu finden, wurde um zwei weitere spezielle Suchmöglichkeiten erweitert. Die erste Erweiterung sind die sogenannten „Path Patterns“. Hier schreibt man seinen Suchstring einfach zwischen zwei Schrägstrichen. Angezeigt werden dann alle Dateien im Workspace, welche diesen Suchwert an beliebiger Position enthalten. Selbstverständlich kann man dieses Verfahren auch mit Jokerzeichen kombinieren, wie Abbildung 1 zeigt.

Die andere neue Suchmöglichkeit trägt den Namen "Relative Path" und bietet die Möglichkeit, ein Prefix ähnlich "./" nach Ressourcen in dem Ordner zu suchen, in dem sich die aktuelle Selektion befindet oder die Datei, die gerade im aktiven Editor geöffnet ist. Abbildung 2 zeigt ein Beispiel.

@Override
Bereits mit Java 5 wurde die Annotation @Override eingeführt. Verwendet werden soll diese Annotation, um Methoden zu markieren, die man aus abgeleiteten Klassen überschreibt. Damit wird der Code insgesamt nicht nur übersichtlicher, weil man auf einen Blick sieht, welche Methode überschrieben wurde und welche nicht. Der Java Compiler ist darüber hinaus auch in der Lage festzustellen, ob eine überschriebene Methode auch tatsächlich mit der Methodensignatur der zu überschreibenden Methode in der Oberklasse übereinstimmt. Gelingt dem Compiler kein Match, kann er entsprechend einen Fehler ausgeben und dem Entwickler wird viel schneller klar, dass er zwar eine Methode überschreiben wollte, sich offensichtlich aber vertippt hat.

JDT unterstützt bereits seit Längerem die @Override-Annotation und zeigt folgerichtig auch einen entsprechenden Fehler an, wenn eine mit der Annotation überschriebene Methode von der Signatur her nicht mit einer Methode aus der abgeleiteten Klasse übereinstimmt. Neu hinzugekommen ist in Java 6 auch die Möglichkeit, mit @Override Methoden zu markieren, die von einem Interface implementiert wurden. Eclipse ist in der aktuellen Version erstmals in der Lage zu erkennen, ob eine aus einem Interface implementierte Methode mit der Annotation versehen wurde. Leider ist die soeben beschriebene Funktion zum Umgang mit @Override per Default abgeschaltet. Um sie zu aktivieren, muss in den Preferences auf der Seite JAVA COMPILER | ERROR/WARNINGS im Bereich ANNOTATIONS die entsprechende Einstellung (MISSING @OVERRIDE ANNOTATION) von "Ignore" am besten auf "Warning" umgestellt werden.

Im gleichen Einstellungsfenster findet sich auch die Möglichkeit, diese neu hinzugekommene Unterstützung von @Override auf Interfaces an- beziehungsweise auszuschalten. Insgesamt bleibt festzuhalten, dass sich die angesprochene Annotation als nützliches kleines Helferlein herausstellen kann, um auf der einen Seite den Überblick über den eigenen Code zu bewahren, und um auf der anderen Seite schon während der Entwicklung Fehler viel schneller zu erkennen.

Teil 1   Teil 2   Teil 3   

andere Artikel dieser Serie

Kommentare

Gravatar RPR 23.06.2010
um 13:14 Uhr
Vielen Dank für die nette Zusammenfassung der JDT!
Das mit dem Override für Interfaces ist eine lang überfällige, sehr sinnvolle Sache; er Rest aber komplett nice-to-have.

Mein Fazit lautet daher: Offenbar gehen den Entwicklern die Ideen zu JDT aus ... ist aber nicht so schlimm; es ist halt einfach schon sehr gut.
Und besser wenig Neuerungen als unnütze Sachen.
Mir persönlich ist schon die Zwangs-Integration von Mylyn viel zu weit gegangen; ich nutze das nicht.
Aber dank dem "überragenden" Plugin-In-Komponenten-Prinzip von Eclipse muss ich es aber trotzdem installieren; und das ist nicht grade klein...
#zitieren
Gravatar Martin 24.05.2011
um 09:51 Uhr
@Override für Interfaces ist beim Code-"Clean Up" oder unter "Sace Actions" auch als "Add missing '@Override annotations to implementations of interface methods" auswählbar #zitieren