¿Alguna forma (o acceso directo) de importar automáticamente las clases en IntelliJ IDEA como en Eclipse?

123

En Eclipse, mientras codifica en Java y presione Ctrl+ Shift+ Oauto importar todas las clases automáticamente.
En NetBeans, esto se hace conCtrl + Shift+ I.

¿Hay alguna forma de hacer esto en IntelliJ IDEA?

Busqué un atajo equivalente en google, StackOverflow, configuración de IntelliJ IDEA y en el sitio web oficial de IntelliJ Atajos de teclado que no puede perderse

bywronski
fuente
4
Cuando busque un comando / método abreviado de teclado, escriba Ctrl-shift-A (o Cmd-shift-A en Mac) y busque el comando. Por ejemplo, aquí, si escribe "importaciones", verá el comando "Optimizar importaciones" y su método abreviado de teclado.
JB Nizet
2
"Optimizar importaciones" no funciona agregue las clases
bywronski
La importación automática de clases funciona si la habilitas en "Configuración> Editor> General> Importación automática".
Andrea Bergonzo
este es realmente el mayor defecto de intellij. es un dolor. obtener conflictos y fusiones en las importaciones es estúpido, pero intellij no puede ayudarlo fácilmente a resolverlo
bharal

Respuestas:

103

IntelliJ IDEA no tiene una acción para agregar importaciones. Más bien tiene la capacidad de hacer lo que escribe. Si habilita "Agregar importaciones inequívocas sobre la marcha" en Configuración> Editor> General> Importación automática , IntelliJ IDEA las agregará a medida que escribe sin necesidad de atajos. También puede agregar clases y paquetes para excluirlos de la importación automática para hacer que una clase que usa mucho, que choca con otras clases del mismo nombre, no sea ambigua.

Para las clases que son ambiguas (o prefiere tener desactivada la opción "Agregar importaciones no ambiguas sobre la marcha"), simplemente escriba el nombre de la clase (solo el nombre está bien, no es necesario calificar completamente). Use la finalización de código y seleccione la clase particular que desee:

ingrese la descripción de la imagen aquí

Observe los nombres completos a la derecha. Cuando selecciono el que quiero y presiono enter, IDEA agregará automáticamente la declaración de importación. Esto funciona igual si estuviera escribiendo el nombre de un constructor. Para los métodos estáticos, incluso puede seguir escribiendo el método que desee. En la siguiente captura de pantalla, todavía no se ha importado ninguna clase "StringUtils".

ingrese la descripción de la imagen aquí

Alternativamente, escriba el nombre de la clase y luego presione Alt+ Entero + Enterpara "Mostrar acciones de intención y soluciones rápidas" y luego seleccione la opción de importación.

Aunque nunca lo he usado, creo el complemento de terceros Eclipse Code Formatter hará lo que quieras. Enumera "emula la optimización de importaciones de Eclipse" como una característica. Consulte sus instrucciones para obtener más información. Pero al final, sospecho que encontrará que las características integradas de IDEA funcionan bien una vez que se acostumbre a su paradigma. En general, IDEA utiliza un concepto de "desarrollo por intenciones". Entonces, en lugar de interrumpir mi trabajo de desarrollo para agregar una declaración de importación, simplemente escribo la clase que quiero (mi intención) e IDEA agrega automáticamente la declaración de importación para la clase.

Javaru
fuente
7
Es mucho más trabajo de esta manera cuando está editando archivos antiguos.
Adam
Esto no me funciona. Cuando presiono Enter después de seleccionar una clase que aparece en la lista de autocompletar, IntelliJ no la importa. En su lugar, escribe el nombre completo de la clase. Esto es muy molesto e inútil. ¿Sabes cómo arreglar ésto?
Rodrigo
^ la razón de este comportamiento es que la clase que estaba intentando importar no estaba en la ruta de construcción. Una vez agregado, presionando Enter importó correctamente la clase.
Rodrigo
3
Llegué a esta pregunta con la esperanza de encontrar un atajo de teclas para IntelliJ. El problema es que si comento una gran sección de código que tiene clases, IntelliJ elimina automáticamente las importaciones de espacio de nombres. Ahora, si voy y descomento el código, IntelliJ no vuelve a importar los espacios de nombres para el mismo y se convierte en un verdadero dolor de cabeza seguir haciendo ALT + Enter para cada uno de ellos. ¿Alguna solución?
Rahul Saini
Estoy de acuerdo con @RahulSaini en esto. No hay ninguna razón para tener dos mapas de claves separados para una sola actividad. No quiero ni debería tener que hacer varias cosas para lograr una sola acción. Yo diría que en este punto intellij simplemente está siendo beligerante al respecto y no tiene ninguna razón real para no "organizar" las importaciones en lugar de "optimizar" las importaciones. Realmente quiero rechazar esta respuesta a pesar de que es técnicamente correcta.
peekay
73

No todos a la vez. Pero puedes presionar

Alt + Enter

La gente asume que solo funciona cuando estás en un artículo en particular. Pero en realidad funciona para el "siguiente tipo que falta". Entonces, si sigue presionando Alt+ Enter, IDEA corrige uno tras otro hasta que todo se arregla.

Teknopaul
fuente
1
Supongo que se refiere a los símbolos de las teclas del teclado. Estos se pueden agregar usando la kbdetiqueta<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim
1
Ve a la clase que no puede encontrar y presiona ⌥ + Enter. Me alegro de haberme desplazado hacia abajo.
Ajak6
1
¿Hay alguna manera de reasignar Alt+Entera una combinación más amigable para los dedos? No pude entenderlo a través del IntelliJ IDEA > Preferences > Keymapmenú.
Laylaylom
1
Encontré la forma de Eclipse de omitir la adición de declaraciones de importación más fácil que la de IDEA. Siempre me confundo dónde colocar el cursor del mouse antes de escribir Alt + Enter
vikramvi
Alt + Enter en combinación con F2 (Siguiente error resaltado) suele ser bastante rápido incluso para Clases (demasiado) grandes.
osundblad
10

Parece que IntelliJ IDEA importará la clase perdida automáticamente, y puede importarlas presionando Alt+ Entermanualmente.

Wuaner
fuente
8

Creo que la mejor solución, aunque no es exactamente la misma que Eclipse / Netbeans, es cambiar la configuración de 'Optimizar importaciones'.

Debajo Preferences > Editor > General > Auto Import

Conjunto Add unambiguous imports on the fly

Editar: Usando este método, cuando no son las importaciones ambiguas, IntelliJ se lo hará saber, y entonces puede usar Alt+ Entermétodo descrito en el respuesta por Wuaner

Encuentro que, casi siempre, la importación más apropiada está en la parte superior de la lista.

comfytoday
fuente
1
@Raja Tampoco estoy seguro de por qué. Sé que cuando les dije a mis compañeros de trabajo que eligieron no usar este método, aunque ... misterioso.
comfytoday
Las instrucciones son bastante claras. Solo importa automáticamente las unambiguousclases. Y lo he estado usando desde los últimos dos días en mi proyecto de más de 3000 clases. Funciona de maravilla. Gracias por compartir.
Raja Anbazhagan
5

No se pueden importar todos a la vez, pero se pueden utilizar las siguientes combinaciones:

ALT + Enter -> Mostrar acciones de intención y soluciones rápidas.

F2 -> Siguiente error resaltado.

Lyncean Patel
fuente
3

Otra opción es pedirle a IDEA que se comporte como un eclipse con las teclas de acceso directo del eclipse. Puede utilizar todos los accesos directos de eclipse habilitando esto.

Estos son los pasos:

1- Con IDEA abierto, presione Control + ` . Aparecerán las siguientes opciones.

ingrese la descripción de la imagen aquí

2- Seleccione Mapa de teclas. Verá otra ventana emergente. Seleccione Eclipse allí.

ingrese la descripción de la imagen aquí

3- Ahora presionaCtrl + Shift + O . ¡Estás listo!

Diestro
fuente
Lo intenté. No hace que "organizar importaciones" se comporte al estilo Eclipse.
Florian F
0

Use control+ option+ Lpara importar automáticamente el paquete y eliminar automáticamente los paquetes no utilizados en Mac

NarendraR
fuente