Eclipse-Importe optimieren, um statische Importe einzuschließen


411

Gibt es eine Möglichkeit, Eclipse dazu zu bringen, automatisch nach statischen Importen zu suchen? Zum Beispiel möchte ich jetzt, da ich endlich auf Junit 4 aktualisiert habe, schreiben können:

assertEquals(expectedValue, actualValue);

Drücke Ctrl+ Shift+ Ound lass Eclipse hinzufügen:

import static org.junit.Assert.assertEquals;

Vielleicht frage ich zu viel.

Antworten:


573

Ich verwende Eclipse Europa, das auch den Abschnitt mit den bevorzugten Einstellungen enthält:

Fenster> Einstellungen> Java> Editor> Inhaltsassistent> Favoriten

In meinen habe ich die folgenden Einträge (wenn Sie hinzufügen, verwenden Sie "New Type" und lassen Sie die weg .*):

org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
org.junit.Assume.*
org.junit.matchers.JUnitMatchers.*

Alle bis auf den dritten sind statische Importe. Wenn Sie diese als Favoriten haben und " assertT" eingeben und Ctrl+Space drücken, bietet Eclipse assertThateinen Vorschlag an. Wenn ich ihn auswähle, wird der Datei der richtige statische Import hinzugefügt.


26
Ah - der Trick besteht darin, einfach org.junit.Assertvia hinzuzufügen New Type..., das .*ist dann implizit.
KomodoDave

5
Ist es richtig, dass beim automatischen Import Ctrl+Shift+onicht der erforderliche Import hinzugefügt wird, und Sie müssen tatsächlich den Mauszeiger bewegen und die Add static import..Option auswählen ? Es ist eine Schande, dass das übliche Dialogfeld für die Auswahlliste für den automatischen Import nicht angezeigt wird.
KomodoDave

2
@ J.Stoever - Wenn Sie JUnit 4 verwenden, möchten Sie das Hamcrest-Formular verwenden:assertThat(value, is(expected));
David Harkness

2
Ich habe es mit Eclipse Kepler versucht, aber ohne Erfolg. Ich habe auch Eclipse neu gestartet. Keine automatische Vervollständigung, keine statische Importauswahl beim Bewegen oder Drücken von STRG + 1. Hat dies jemand erlebt?
Magnilex

2
Intellij Idea unterstützt dies sofort. Schade, dass die Sonnenfinsternis es nicht tut.
Neeraj

242

Wenn Sie die Methode markieren Assert.assertEquals(val1, val2)und Ctrl+ Shift+ M(Import hinzufügen) drücken, wird sie zumindest in Eclipse 3.4 als statischer Import hinzugefügt.


11
cmd-shift-M auf dem Mac
Joshua Goldberg

15
In Eclipse Juno habe ich es nur geschafft, dass es funktioniert, wenn ich nur die Methode hervorhole und danach
STRG

5
Dies sollte der Gewinner sein!
Clint Eastwood

Funktioniert auch für statische Felder AX -> X (stark AX und Strg + Umschalt + M). Vielen Dank. Genau das, was ich wollte.
Eyad Ebrahim

5
Arbeitet für mich auf Luna. Stellen Sie sicher, dass sich Ihr Cursor auf der rechten Seite des Zeitraums befindet. Ich wünschte, ich hätte vor Jahren davon erfahren!
HDave

31

Eclipse 3.4 hat einen Abschnitt Favoriten unter Fenster-> Einstellungen-> Java-> Editor-> Inhaltsassistent

Wenn Sie org.junit.Assertviel verwenden, finden Sie möglicherweise einen Wert für das Hinzufügen dort.


21

Nicht genau das, was ich wollte, aber ich habe eine Problemumgehung gefunden. Gehen Sie in Eclipse 3.4 (Ganymed) zu

Fenster-> Einstellungen-> Java-> Editor-> Inhaltsassistent

und aktivieren Sie das Kontrollkästchen Statische Importe verwenden (nur 1,5 oder höher) .

Dies führt nicht zu einem Import bei einer Optimierung von Importen. Wenn Sie jedoch eine Schnellkorrektur ( CTRL+ 1) in der Zeile durchführen, können Sie den statischen Import hinzufügen, der gut genug ist.


10

Von der Inhaltshilfe für statische Importe

Um Vorschläge zur Inhaltsunterstützung für statische Mitglieder zu erhalten, konfigurieren Sie Ihre Liste der bevorzugten statischen Mitglieder auf der Einstellungsseite der Favoriteneinstellungsseite Java > Editor > Content Assist > Favorites.
Wenn Sie beispielsweise java.util.Arrays.*oder org.junit.Assert.*zu dieser Liste hinzugefügt haben , werden alle statischen Methoden dieses Typs, die dem Abschlusspräfix entsprechen, zur Vorschlagsliste hinzugefügt.

Öffnen Window » Preferences » Java » Editor » Content Assist » Favorites

Geben Sie hier die Bildbeschreibung ein


5

Für SpringFramework-Tests würde ich empfehlen, auch das Folgende hinzuzufügen

org.springframework.test.web.servlet.request.MockMvcRequestBuilders
org.springframework.test.web.servlet.request.MockMvcResponseBuilders
org.springframework.test.web.servlet.result.MockMvcResultHandlers
org.springframework.test.web.servlet.result.MockMvcResultMatchers
org.springframework.test.web.servlet.setup.MockMvcBuilders
org.mockito.Mockito

Wenn Sie oben als neuen Typ hinzufügen, wird automatisch. * Zum Paket hinzugefügt.



2

Wählen Sie die Konstante aus und geben Sie ein

Ctrl + 1  (quick fix)

Wählen Sie "In statischen Import konvertieren". aus dem Dropdown.

"Quick Fix" bietet Optionen, obwohl dies kein Fehler ist.


1

In Eclipse 4.9 können Sie vorhandene Aufrufe mithilfe einer Schnellkorrektur statisch importieren.

Es wurde eine neue Schnellkorrektur implementiert, mit der der Benutzer statische Feldzugriffe und statische Methoden konvertieren kann, um einen statischen Import zu verwenden. Es ist auch möglich, alle Vorkommen gleichzeitig zu ersetzen.

Weitere Details hier

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.