Eclipse Optimiser les importations pour inclure les importations statiques

411

Existe-t-il de toute façon que Eclipse recherche automatiquement les importations statiques? Par exemple, maintenant que je suis enfin passé à Junit 4, j'aimerais pouvoir écrire:

assertEquals(expectedValue, actualValue);

appuyez sur Ctrl+ Shift+ Oet demandez à Eclipse d'ajouter:

import static org.junit.Assert.assertEquals;

Peut-être que je demande trop.

Paul Croarkin
la source

Réponses:

572

J'utilise Eclipse Europa, qui a également la section Préférences favorites:

Fenêtre> Préférences> Java> Éditeur> Assistant de contenu> Favoris

Dans le mien, j'ai les entrées suivantes (lors de l'ajout, utilisez "Nouveau type" et omettez le .*):

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

Tous, sauf le tiers, sont des importations statiques. En les ayant comme favoris, si je tape " assertT" et appuie sur Ctrl+Space , Eclipse offre assertThatune suggestion, et si je le choisis, il ajoutera l'importation statique appropriée au fichier.

Joey Gibson
la source
26
Ah - l'astuce consiste à simplement ajouter org.junit.Assertvia New Type..., le .*est alors implicite.
KomodoDave
5
Est-il exact que l'importation automatique Ctrl+Shift+on'ajoutera pas l'importation nécessaire, et en fait, vous devez survoler le curseur et choisir l' Add static import..option? C'est dommage que la boîte de dialogue habituelle de liste de sélection d'importation automatique ne s'affiche pas.
KomodoDave
2
@ J.Stoever - Si vous utilisez JUnit 4, vous voudrez utiliser le formulaire Hamcrest:assertThat(value, is(expected));
David Harkness
2
J'ai essayé cela avec Eclipse Kepler, mais en vain. J'ai également redémarré Eclipse. Pas de saisie semi-automatique, pas de choix d'importation statique lors du déplacement ou de la pression sur CTRL + 1. Quelqu'un a-t-il vécu cela?
Magnilex
2
Intellij Idea prend cela en charge. L'éclipse honteuse ne le fait pas.
Neeraj
242

Si vous mettez en surbrillance la méthode Assert.assertEquals(val1, val2)et appuyez sur Ctrl+ Shift+ M(Ajouter une importation), il l'ajoutera en tant qu'importation statique, au moins dans Eclipse 3.4.

Dave L.
la source
11
cmd-shift-M sur le mac
Joshua Goldberg
15
Dans Eclipse Juno, je n'ai réussi à le faire fonctionner que si je ne sélectionne que la méthode et ensuite j'utilise CTRL + SHIFT + M.
ktulinho
5
Ce devrait être le gagnant!
Clint Eastwood
Fonctionne également pour les champs statiques AX -> X (fortement AX et Ctrl + Maj + M). Merci. Exactement ce que je voulais.
Eyad Ebrahim
5
Fonctionne pour moi sur Luna. Assurez-vous que votre curseur est sur le côté droit de la période. J'aimerais avoir appris cela il y a des années!
HDave
31

Eclipse 3.4 a une section Favoris sous Window-> Preferences-> Java-> Editor-> Content Assist

Si vous en utilisez org.junit.Assertbeaucoup, vous pourrez peut-être y ajouter de la valeur.

Bill Michell
la source
21

Pas exactement ce que je voulais, mais j'ai trouvé une solution de contournement. Dans Eclipse 3.4 (Ganymède), accédez à

Fenêtre-> Préférences-> Java-> Éditeur-> Assistant de contenu

et cochez la case Utiliser les importations statiques (seulement 1,5 ou plus) .

Cela n'apportera pas l'importation sur une optimisation des importations, mais si vous effectuez une correction rapide ( CTRL+ 1) sur la ligne, cela vous donnera la possibilité d'ajouter l'importation statique qui est assez bonne.

Paul Croarkin
la source
10

À partir de l' aide au contenu pour les importations statiques

Pour obtenir des propositions d'assistance de contenu pour les membres statiques, configurez votre liste de membres statiques préférés sur la page de Java > Editor > Content Assist > Favoritespréférences Ouvre la page de préférences Favoris .
Par exemple, si vous avez ajouté java.util.Arrays.*ou org.junit.Assert.*à cette liste, toutes les méthodes statiques de ce type correspondant au préfixe d'achèvement seront ajoutées à la liste des propositions.

Ouvert Window » Preferences » Java » Editor » Content Assist » Favorites

entrez la description de l'image ici

Sumit Singh
la source
5

Pour les tests SpringFramework, je recommanderais également d'ajouter ce qui suit

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

Lorsque vous ajoutez ci-dessus en tant que nouveau type, il ajoute automatiquement. * Au package.

Neeraj
la source
3

Raccourci pour l'importation statique: CTRL + MAJ + M

Michael Hegner
la source
2

Sélectionnez la constante, tapez

Ctrl + 1  (quick fix)

Sélectionnez "Convertir en importation statique". de la liste déroulante.

"Quick fix" a des options même s'il ne s'agit pas d'une erreur.

teknopaul
la source
1

Dans Eclipse 4.9, vous pouvez importer des invocations existantes statiques à l'aide d'une solution rapide.

Un nouveau correctif rapide a été implémenté qui permet à l'utilisateur de convertir les accès aux champs statiques et les méthodes statiques pour utiliser une importation statique. Il est également possible de remplacer toutes les occurrences en même temps.

Plus de détails ici

Ankit Soni
la source