101 votes

Achèvement de l'importation statique dans IntelliJ

Dans Eclipse, j'ai pu enregistrer un ensemble de classes pour l'autocomplétion des importations statiques, par exemple Math. , Assert. , EasyMock.*

Avec cela activé, j'ai pu frapper ctrl-espace assertEquals, pow, createMock etc. apparaissaient comme des compléments de code valides.

J'ai du mal à le trouver dans IntelliJ mais je suis sûr qu'il doit exister. Quelqu'un peut-il m'aider ?

Gracias.

66voto

Andrzej Doyle Points 52541

Version >= 11 :

Settings -> Code Style -> Java -> Imports (tab) .

Version < 11

Settings -> Code Style -> Imports

Au milieu du volet se trouve le tableau "Packages to Use Import with '*'". Vous pouvez y ajouter une entrée pour un nom de classe entièrement qualifié, et cocher la case static ; maintenant toutes les méthodes statiques de cette classe seront disponibles pour l'autocomplétion.

(Je ne sais pas comment l'importation statique fonctionne avec la spécification d'un paquet, car je n'ai jamais essayé, mais je ne vois pas pourquoi ce ne serait pas le cas. Spécifier un super-paquet et cocher l'option "avec sous-paquets" pourrait être encore plus intéressant).

10 votes

Est-il possible de configurer IntelliJ pour qu'il ajoute simplement une importation statique de la méthode, et pas de * ?

1 votes

Dans la version 11, il n'apparaît pas que Imports soit sous Style de code.

6 votes

Dans la version 11, je le vois sous Code Style -> Java où il existe un Imports tab. Je ne me souviens plus si c'était comme ça dans la v10, et si ma description était bâclée, ou si c'était légèrement différent auparavant. Si vous disposez d'une version antérieure d'IntelliJ, vous pouvez modifier cette réponse en conséquence.

42voto

Pakka Pakka Points 636

Si vous utilisez IntelliJ 10, essayez ce qui suit :

assEq<Ctrl-Alt-Space>

L'acceptation d'une suggestion à partir de la liste contextuelle résultante insérera, par défaut, une référence ClassName.methodName() (que vous pouvez convertir en une importation statique en utilisant une intention Alt-Enter).

Vous pouvez également insérer une méthode importée statiquement à partir de la liste de complétion en choisissant "Droit" dans le menu de complétion, et en sélectionnant "Importer statiquement" :

enter image description here

Notez qu'une fois que vous avez importé statiquement une seule méthode d'une classe (Assert.assertSame), les autres méthodes statiques de cette classe (comme Assert.assertEquals) seront incluses dans la complétion de code "normale" (Ctrl-Espace).

0 votes

Quelle étape ne fonctionne pas ? Faire suggérer assertEquals() en utilisant Ctrl-Alt-espace, ou sélectionner les options d'importation statique ?

0 votes

La première étape ne fonctionnait pas, mais vous m'avez donné la solution avec votre commentaire. En fait, vous avez écrit CTRL+SHIFT+SPACE dans la réponse mais CTRL+ALT+SPACE dans le commentaire. La dernière étape fonctionne bien.

0 votes

Wow. J'utilise IntelliJ depuis 18 mois et c'est la première fois que j'apprends l'existence de cette excellente fonctionnalité. Comment puis-je trouver dans le menu ou via Ctrl+Shift+A ?

38voto

loyalBrown Points 424

Pour Intellij 12, il suffit de cliquer sur <ctrl + spacebar(twice)> . Ensuite, pour importer la méthode de manière statique, tapez <alt + return> . Sinon, il suffit d'appuyer sur la touche Entrée pour insérer le nom pleinement qualifié de la méthode.

Mise à jour : Parfois, il suffit d'utiliser <alt + return> fonctionne également.

7voto

Andreas Wederbrand Points 10606

Il suffit de faire la référence une fois, puis de placer le curseur sur le nom de la classe (par exemple Math), d'appuyer sur alt+enter et de choisir "add on demand static import for 'java.lang.Math'". Intellij ajoutera

import static java.lang.Math.*;

en haut du fichier.

8 votes

Mais je dois toujours le faire dans chaque fichier :(

1voto

Kavan Points 49

Pour compléter ce que loyalBrown a dit dans sa mise à jour, il suffit d'appuyer sur au lieu de Ctrl + espace.

(Testé sur IntelliJ 13)

MISE À JOUR : Il semble que vous deviez d'abord taper la déclaration entière, puis alt + retour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X