Im Folgenden werden einige interessante bzw. wichtige Änderungen an den Java-Entwicklungstools vorgestellt, die für das Eclipse-Release 3.2 vorgenommen wurden. Sie sind in folgende Gruppen eingeteilt:
Informationen zu Änderungen der Plattform finden Sie auch im Dokument Eclipse-Plattform - Neue Funktionen in 3.2.
Java-Refactoring |
|
Refactoring 'Dereferenzierung einführen' |
Dereferenzierung einführen ist ein neuer Refactoringvorgang, bei dem Sie alle Aufrufer einer Methode zu einer neuen Methode umleiten können. Die neue Methode ruft die ursprüngliche Methode auf. Sie können die Standardimplementierung der neuen Methode nach Bedarf durch eine beliebige andere ersetzen. Diese Dereferenzierung ist hilfreich, um neues Verhalten für eine Methode einzuführen, wenn folgende Situation vorliegt:
Mit Hilfe der Dereferenzierung können Sie Fehlerkorrekturen an der ursprünglichen Methode vornehmen oder vor bzw. nach allen Aufrufen einer Methode schnell und einfach Code hinzufügen. Um das Refactoring Dereferenzierung einführen auszuführen, wählen Sie eine Methode aus, rufen Sie Refactoring > Dereferenzierung einführen... auf, und geben Sie einen Namen und die deklarierende Klasse für die neue Methode an. Die Methode wird der ausgewählten deklarierenden Klasse hinzugefügt. Alle Verweise werden aktualisiert, sodass sie die neue Methode aufrufen. |
Refactoring 'Superklasse extrahieren' |
Ein neues Refactoring mit der Bezeichnung Superklasse extrahieren extrahiert eine gemeinsame Superklasse aus einer Gruppe gleichgeordneter Typen. Die ausgewählten gleichgeordneten Typen werden zu direkten Unterklassen der extrahierten Superklassen, nachdem das Refactoring angewendet wurde. Darüber hinaus ermöglicht Superklasse extrahieren die Verwendung der extrahierten Superklasse an jeder möglichen Stelle im Code. Im folgenden Beispiel sind Die nächste Abbildung zeigt die Typhierarchie nach dem Extrahieren von Rufen Sie dieses Refactoring über Refactoring > Superklasse extrahieren... auf. |
Assistent für Bereinigung |
Die Funktion Bereinigen kann für eine beliebige Zahl von Java-Quellendateien, -Paketen oder für ein ganzes Java-Projekt aufgerufen werden. Dadurch wird Folgendes unterstützt:
Die folgenden Beispiele veranschaulichen die Möglichkeiten:
Um mit Java 1.4 kompatiblen Code auf 5.0 zu migrieren, können Sie mit Bereinigen Folgendes ausführen:
Wählen Sie ein Projekt, ein Paket oder eine Datei aus, und verwenden Sie Quelle > Bereinigen..., um diesen Assistenten zu starten. |
Refactoringprotokoll |
Die meisten von JDT bereitgestellten Refactorings werden jetzt in einem
Refactoringprotokoll erfasst. In der Refactoringinfrastruktur werden detaillierte Informationen
zu den Refactorings gespeichert, die in Ihrem Arbeitsbereich ausgeführt wurden. |
Refactoringscripts erstellen und anwenden |
Refactorings, die auf ihren lokalen Arbeitsbereich angewendet wurden, können jetzt in ein Refactoringscript exportiert und auf jedem beliebigen Arbeitsbereich erneut ausgeführt werden. Refactoringscripts können in verschiedenen Szenarien verwendet werden, z. B. zum automatischen Korrigieren von unterbrechenden API-Änderungen zwischen Softwareschichten oder zum Bereitstellen von Programmkorrekturen mit umfangreicher Semantik. Erstellen Sie ein Refactoringscript aus dem Refactoringprotokoll mit der Funktion Refactoring > Script erstellen... Mit der Funktion Refactoring > Script anwenden... können Sie das generierte Refactoringscript auf einen beliebigen Arbeitsbereich anwenden. Ein neuer Erweiterungspunkt ermöglicht den Autoren von Plug-ins das Einführen der Unterstützung für
Refactoringscripts für neue und bereits vorhandene Refactorings.
Weitere Informationen finden Sie im Abschnitt zum Erweiterungspunkt
|
JAR-Datei mit Refactorings exportieren |
Beim Exportieren einer JAR-Datei aus dem Arbeitsbereich bietet der Assistent für JAR-Export
die Möglichkeit zum Einfügen von Refactoring-Informationen in die JAR-Datei. Jetzt sind Clients in der Lage, eine alte Version der JAR-Datei mit Hilfe der Funktion Refactoring > JAR-Datei migrieren... in eine neue Version zu migrieren. Alternativ können Sie auch die Funktion Erstellungspfad > JAR-Datei migrieren... verwenden, wenn momentan eine JAR-Datei ausgewählt ist. Dieses Refactoring aktualisiert automatisch sämtlichen Code, der von der alten Version abhängig ist, so dass er die neue Version der JAR-Datei verwendet. |
Auf API abgestimmte Refactorings |
Die folgenden vorhandenen Refactorings wurden erweitert, so dass sie die API-Kompatibilität unterstützen, indem das ursprüngliche Member als Stellvertreter für das Member nach dem Refactoring beibehalten wird:
Die Generierung eines Stellvertreter-Members zur Wahrung der API-Kompatibilität kann durch Aktivieren der Option Ursprüngliche Methode als Stellvertreter für umbenannte Methode beibehalten im Dialog für Refactoring aktiviert werden. |
'Typ umbenennen' aktualisiert ähnlich benannte Elemente |
Das Refactoring Typ umbenennen kann jetzt auch Variablen und Methoden mit ähnlichen Namen wie der umbenannte Typ umbenennen. Diese Funktion unterstützt das Synchronisieren der Methoden- und Variablennamen mit den Typnamen. Wählen Sie zum Aufrufen dieses Refactorings einen Typ aus, und verwenden Sie die Funktion Refactoring > Umbenennen.... |
Refactoring 'Paket umbenennen' benennt untergeordnete Pakete um |
Das Refactoring Paket umbenennen benennt auf Wunsch jetzt auch untergeordnete Pakete um. In diesem Beispiel wird Wählen Sie zum Aufrufen dieses Refactorings ein Paket aus, und verwenden Sie die Funktion Refactoring > Umbenennen.... |
Refactoringvoranzeige filtern |
Die Seite für Refactoringvoranzeige unterstützt jetzt das Filtern der Änderungen. Dies ist besonders hilfreich, wenn beim Umbenennen von Java-Elementen das Aktualisieren von Textübereinstimmungen in Kommentaren und Zeichenfolgen angefordert wird. Die Abbildung zeigt den Dialog für Umbenennen nach dem Filtern von Textübereinstimmungen
beim Umbenennen der Klasse Änderungen der Sichtbarkeit von Java-Elementen können jetzt ebenfalls gefiltert werden. |
Java-Editor |
|
Anpassungsfähige Unterstützung für Inhalt |
Durch wiederholtes Aufrufen der Unterstützung für Inhalt (Strg+Leertaste auf den meisten Plattformen) werden jetzt nacheinander verschiedene Kategorien von Vorschlägen aufgerufen. Auf der Benutzervorgabenseite
Der neue Erweiterungspunkt |
Unterstützung für gemischte Groß-/Kleinschreibung bei der Codefertigstellung |
Bei der Codefertigstellung werden jetzt auch Muster mit gemischter Groß-/Kleinschreibung unterstützt.
Beispielsweise wird für NPE als Fertigstellung NullPointerException vorgeschlagen.
Diese Unterstützung kann mit Hilfe der Benutzervorgabe Übereinstimmungen für gemischte Groß-/Kleinschreibung
anzeigen auf der Benutzervorgabenseite
|
Schnellmenü zum Einbetten von Code |
Das neue Schnellmenü Einbetten in ermöglicht das Einbetten der ausgewählten Zeilen in Code. Das Menü kann durch angepasste Schablonen erweitert werden. Die Schablonen erkennen jetzt auch Variablen, die extrahiert oder finalisiert werden müssen. Durch Auswählen von Quelle > Einbetten in oder durch Drücken der Tasten Alt+Umschalttaste+Z können Sie das Menü direkt aufrufen. Angepasste Schablonen können Sie auf der Benutzervorgabenseite Java > Editor >
Schablonen hinzufügen. Die Schablone benötigt dafür lediglich eine Variable |
Neue Schnellkorrekturen |
Mehrere neue Schnellkorrekturen wurden hinzugefügt, z. B.:
|
Kategorieunterstützung |
In Javadoc-Kommentaren können Kategorien für Typen, Methoden und Felder mit dem
Tag Kategorien werden in den Sichten 'Gliederung' und 'Member' angezeigt sowie in der Schnellgliederung. Im Anzeigemenü kann ausgewählt werden, welche Kategorien sichtbar sind. |
Alle Member können komprimiert werden |
Wenn die Komprimierung aktiviert ist, können Felder, Initialisierungsoperatoren und zugehörige Kommentare jetzt auf die gleiche Weise wie Methoden komprimiert werden. Neue Textkomprimierungsbefehle ermöglichen das Ausblenden aller Kommentare, das Ausblenden aller Member und das Zurücksetzen der Komprimierungsstruktur. Diese Befehle befinden sich im Kontextmenü Komprimierung des Java-Editors auf der vertikalen Skala. |
Unterstützung von Skala und Gliederung für Java-Dateien außerhalb des Arbeitsbereichs |
Im Java-Editor werden jetzt vertikale Skalen angezeigt und die Seite 'Gliederung' sowie die Schnellgliederung ermöglichen das Anzeigen der Gliederung für externe Java-Dateien und Java-Dateien aus Repositorys. |
Java-Compiler |
|
Konformität mit Java SE 6.0 |
Die Konformität mit Java SE 6.0 wird jetzt vollständig unterstützt.
Insbesondere werden jetzt Attribute des Typs |
Nullverweisanalyse |
Der Java-Compiler ist jetzt in der Lage, eine grundlegende Nullverweisanalyse für lokale Variablen auszuführen. Diese optionale Diagnose kann auf der Benutzervorgabenseite
Diese Analyse ist eher konservativ, d. h. auf definitive Zuordnungsregeln abgestimmt. Sie berücksichtigt nur Fälle, in denen ein konkreter Verdacht besteht (z. B. wenn später eine Nullprüfung ausgeführt wird), anstatt alle möglichen Fälle zu melden. Im Modus für 5.0-Konformität können Nullverweiswarnungen mit
|
Verbesserte Syntaxwiederherstellung |
Der interne Java-Parser ist jetzt widerstandsfähiger gegen Syntaxfehler. In Eclipse 3.1 führte ein Syntaxfehler dazu, dass keine nachfolgenden Fehler angezeigt wurden. Der Parser kann jetzt auch nach fehlerhaften Anweisungen weitere Analysen ausführen. Im folgenden Beispiel wird der ungültige Verweis auf die Methode Dies ermöglicht z. B. Refactorings, die sich nur auf eine einzige Datei auswirken, Syntaxfehler zu tolerieren. Beispielsweise ist jetzt das Extrahieren oder Umbenennen einer lokalen Variable am Anfang einer Methode möglich, die noch nicht vollständig geschrieben ist. |
Konfigurierbare Fehler nicht als schwer wiegend behandeln |
Die Option Konfigurierbare Fehler wie schwer wiegend behandeln auf der
Benutzervorgabenseite
Wenn diese Option inaktiviert ist, kann der kompilierte Code ausgeführt werden, obwohl er Fehler enthält. |
Erkennung unnötiger Tags '$NON-NLS$' |
Unnötige Tags Die Berichterstellung kann über die Benutzervorgabe für nicht ausgelagerte Zeichenfolgen
aktiviert und inaktiviert werden. Sie kann auf der Benutzervorgabenseite
Verwenden Sie zum Entfernen der nicht verwendeten Tags die Schnellkorrektur (Strg+1), oder verwenden Sie Strg+1, Strg+Enter, um alle nicht verwendeten Tags in einer Kompiliereinheit zu entfernen. |
Erkennung der Verwendung unformatierter Typen |
Die Verwendung unformatierter Typen wird jetzt erkannt. Ein unformatierter Typ ist
ein Verweis mit einem generischen Typ ohne Typargument (z. B. Diese optionale Erkennung kann unabhängig von nicht markierten Typoperationen auf der Benutzervorgabenseite
Diese Warnung kann durch Hinzufügen von Außerdem wurde eine Schnellkorrektur eingefügt, die das Beheben von Fehlern durch die Verwendung unformatierter Typen unterstützt. |
Erkennung von Methodenparameterzuordnungen |
Die Zuordnung zu Methodenparametern wird als schlechte Praktik angesehen. Öffnen Sie zum Erkennen und Berichten solcher Zuordnungen die Benutzervorgabenseite
|
Erkennung nicht verwendeter Bezeichnungen |
Der Java-Compiler erkennt jetzt auch nicht verwendete Anweisungsbezeichnungen. Diese optionale Diagnose kann auf der Benutzervorgabenseite
|
Erkennung von SWITCH CASE-Durchlauf |
Der Java-Compiler kann jetzt auch erkennen, ob CASE infolge des Durchlaufs einer vorherigen CASE-Anweisung eintreten kann. Leere CASE-Instanzen sind zulässig. Diese optionale Diagnose kann auf der Benutzervorgabenseite
Eine Schnellkorrektur zum Hinzufügen einer Anweisung |
Verbesserte Leistung bei umfangreichen .jar-Dateien |
Die Größenbegrenzung des internen Java-Modellcache ist jetzt eine Funktion der maximalen Größe des Heapspeichers (VM-Argument -Xmx auf den meisten JVMs), die an die virtuelle Java-Maschine (JVM) übergeben wird, auf der die Eclipse IDE ausgeführt wird. Das Vergrößern des Heapspeichers führt zu einer deutlichen Verbesserung der Leistung, wenn der Erstellungsklassenpfad umfangreiche .jar-Dateien enthält. |
Geänderte .class-Dateien erneut erstellen |
Das Java-Erstellungsprogramm kann jetzt geänderte oder entfernte .class-Dateien im Ausgabeordner anhand der ursprünglichen Quelle erneut erstellen. Diese Funktion kann auf der Benutzervorgabenseite
|
Javadoc-Sicht und QickInfos aus zugeordnetem Javadoc |
Die Sicht 'Javadoc' und die Javadoc-Kurzinfos extrahieren jetzt Informationen aus dem zugeordneten Javadoc für Bibliotheken, denen keine Quelle zugeordnet ist. |
JUnit-Tools |
|
Unterstützung für JUnit 4 |
Die JUnit-Unterstützung wurde aktualisiert und kann jetzt auch JUnit 4-Tests ausführen und schreiben. Weitere Informationen zu JUnit 4 finden Sie unter www.junit.org.
|
Protokoll der Sicht 'JUnit' |
Die Sicht 'JUnit' kann jetzt mehrere Testläufe gleichzeitig verarbeiten. Mit Hilfe des neuen Protokolls können Sie zwischen aktiven und kürzlich ausgeführten Testläufen wechseln. Tests können über das Protokoll erneut ausgeführt werden, ohne bereits laufende Tests zu stoppen. Dieses Protokoll funktioniert mit JUnit 3 und mit JUnit 4. |
Java-Debugger |
|
Ausführungsumgebungen |
Eine Ausführungsumgebung beschreibt die Funktionalität einer
Laufzeitumgebung, z. B. J2SE-1.4. Durch Verweisen auf eine Ausführungsumgebung können Sie angeben, welche
JREs für Ausführung, Debug und Erstellung verwendet werden.
Auf der neuen Benutzervorgabenseite
Ein Erstellungspfad oder eine Startkonfiguration, die auf eine Ausführungsumgebung verweist, ist leichter portierbar als eine Startkonfiguration, die auf eine bestimmte JRE verweist, da die Ausführungsumgebung einer JRE unabhängig vom Namen der JRE aufgelöst werden kann. Geben Sie auf der Registerkarte 'JRE' oder im Assistenten 'Bibliothek bearbeiten' eine Ausführungsumgebung für Ausführung und Erstellung an. |
Startvariable für Systemeigenschaften |
Eine neue Startvariable ermöglicht dynamisches Angeben von Systemeigenschaften als Java-Programm- und VM-Argumente über die Eclipse-Laufzeitumgebung. Die Variable akzeptiert als einziges Argument den Namen der Systemeigenschaft, die zur Startzeit aufgelöst werden soll. Beispielsweise wird auf die Systemeigenschaft java.home mit ${system_property:java.home} verwiesen. |
Auswertungsunterstützung für Arrays |
Auswertung und Unterstützung für Inhalt werden jetzt auch für Java-Arrays unterstützt. Verwenden Sie |
Java-Threadgruppen |
Threadgruppen können in der Sicht 'Debug' jetzt durch Umschalten der Option Threadgruppen anzeigen im Sichtmenü angezeigt werden. |
Exportierte Einträge für Laufzeitklassenpfad |
Ein Laufzeitklassenpfad kann so konfiguriert werden, dass er nur exportierte Eingträge aus dem Erstellungspfad enthält. Standardmäßig enthält ein Laufzeitklassenpfad alle Einträge (exportierte und nicht exportierte). Wählen Sie auf der Registerkarte Klassenpfad den Standardeintrag aus, und verwenden Sie die Schaltfläche Bearbeiten..., um die Option zu konfigurieren. |
Thread aussetzen oder VM aussetzen |
Auf der Benutzervorgabenseite
|
Sonstiges |
|
Java-Typanzeiger |
Aktivieren Sie den Java-Typanzeiger auf der Benutzervorgabenseite
|
Beschädigte ausgelagerte Zeichenfolgen finden |
Mit einer neuen Aktion können beschädigte ausgelagerte Zeichenfolgen gesucht werden. Bei diesem Suchvorgang werden fehlende, nicht verwendete und doppelte Schlüssel gemeldet. Um den Suchvorgang zu starten, wählen Sie eine Eigenschaftendatei, ein Paket oder ein ganzes Projekt aus, und verwenden Sie die Option Quelle > Beschädigte ausgelagerte Zeichenfolgen finden. |
Verbesserte Unterstützung für Auslagerungsmechanismus von Eclipse |
Der Auslagerungsmechanismus von Eclipse wird jetzt im gleichen Umfang unterstützt wie die traditionelle Auslagerung von Zeichenfolgen. Der dazugehörige ausgelagerte Wert wird in einer Kurzinfo angezeigt, wenn der Cursor im Java-Editor auf dem Schlüssel einer ausgelagerten Zeichenfolge platziert wird. Drücken Sie die Tasten Strg+Rechte Maustaste, während der Cursor auf dem Schlüssel steht, um direkt den Eintrag in der entsprechenden Eigenschaftendatei aufzurufen. Im Editor der Eigenschaftendatei können Sie durch Drücken der Tasten Strg+Rechte Maustaste feststellen, wo der Schlüssel im Code verwendet wird. |
Typ aus Beispielsnippet erstellen |
Ein Codesnippet, das einen Java-Typ enthält, kann direkt in einen Paket-
oder Quellenordner eingefügt werden, um eine neue Kompiliereinheit zu erstellen.
Wählen Sie beispielsweise den folgenden Quellcode aus, und kopieren Sie ihn:
package pack; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }Wählen Sie anschließend im Paket-Explorer einen Quellenordner aus, und verwenden Sie Strg+V (Bearbeiten > Einfügen). Dadurch wird automatisch ein neues Paket 'pack' und die Datei 'HelloWorld.java' mit dem kopierten Inhalt erstellt. |
hashCode() und equals() generieren |
Mit einer neuen Aktion können die Methoden
Wählen Sie zum Aufrufen dieser Aktion einen Typ aus, und verwenden Sie die Funktion Quelle > hashCode() und equals() generieren.... |
Codeformatierungsprogramm für die Befehlszeile |
Mit der neuen automatischen Formatierungsanwendung können Sie jetzt Quellcode formatieren, ohne die Eclipse-Benutzerschnittstelle zu starten. Das Formatierungsprogramm für die Befehlszeile wird als Eclipse-Standardanwendung ausgeführt. Der folgende Befehl formatiert die Quellendateien im Ordner src mit den in der Datei config.prefs angegebenen Optionen: Details finden Sie im Abschnitt Formatierungsanwendung verwenden. |
Unterstützung für Java-ähnliche Erweiterungen |
Jetzt werden auch Dateien mit einer anderen Erweiterung als .java
unterstützt, die reinen Java-Code enthalten. Ein Java-ähnliche Erweiterung kann auf der Benutzervorgabenseite
|