Eclipse optimiza las importaciones para incluir importaciones estáticas


411

¿Hay alguna forma de hacer que Eclipse busque automáticamente las importaciones estáticas? Por ejemplo, ahora que finalmente me actualicé a Junit 4, me gustaría poder escribir:

assertEquals(expectedValue, actualValue);

presione Ctrl+ Shift+ Oy haga que Eclipse agregue:

import static org.junit.Assert.assertEquals;

Tal vez estoy pidiendo demasiado.

Respuestas:


572

Estoy usando Eclipse Europa, que también tiene la sección de preferencias favoritas:

Ventana> Preferencias> Java> Editor> Content Assist> Favoritos

En el mío, tengo las siguientes entradas (cuando agregue, use "Nuevo tipo" y omita el .*):

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

Todos menos el tercero son importaciones estáticas. Al tenerlos como favoritos, si escribo " assertT" y presiono Ctrl+Space , Eclipse se ofrece assertThatcomo una sugerencia, y si lo selecciono, agregará la importación estática adecuada al archivo.


26
Ah, el truco es simplemente agregar org.junit.Assertvía New Type..., .*luego está implícito.
KomodoDave

55
¿Es correcto que la importación automática Ctrl+Shift+ono agregue la importación necesaria y, de hecho, debe pasar el cursor y elegir la Add static import..opción? Es una pena que no se muestre el diálogo habitual de la lista de selección de importación automática.
KomodoDave

2
@ J.Stoever: si está usando JUnit 4, querrá usar la forma Hamcrest:assertThat(value, is(expected));
David Harkness

2
Intenté esto con Eclipse Kepler, pero fue en vano. Reinicié Eclipse también. Sin autocompletar, sin opción de importación estática al pasar el mouse o presionar CTRL + 1. ¿Alguien ha experimentado esto?
Magnilex

2
Intellij Idea admite esto de forma inmediata. El eclipse de vergüenza no.
Neeraj

242

Si resalta el método Assert.assertEquals(val1, val2)y presiona Ctrl+ Shift+ M(Agregar importación), lo agregará como una importación estática, al menos en Eclipse 3.4.


11
cmd-shift-M en la mac
Joshua Goldberg

15
En Eclipse Juno solo he logrado que funcione si resalto solo el método y luego uso CTRL + MAYÚS + M.
ktulinho

55
¡Este debería ser el ganador!
Clint Eastwood

Funciona también para campos estáticos AX -> X (altamente AX y Ctrl + Shift + M). Gracias. Exactamente lo que quería.
Eyad Ebrahim

55
Funciona para mí en Luna. Asegúrese de que su cursor esté en el lado derecho del punto. ¡Ojalá hubiera aprendido sobre esto hace años!
HDave

31

Eclipse 3.4 tiene una sección de Favoritos en Ventana-> Preferencias-> Java-> Editor-> Content Assist

Si usa org.junit.Assertmucho, puede encontrar algún valor para agregarlo allí.


21

No es exactamente lo que quería, pero encontré una solución. En Eclipse 3.4 (Ganímedes), vaya a

Ventana-> Preferencias-> Java-> Editor-> Content Assist

y marque la casilla de verificación para Usar importaciones estáticas (solo 1.5 o superior) .

Esto no traerá la importación en Optimizar importaciones, pero si realiza una Solución rápida ( CTRL+ 1) en la línea, le dará la opción de agregar la importación estática que es lo suficientemente buena.


10

Desde Content asistencia para importaciones estáticas

Para obtener propuestas de asistencia de contenido para miembros estáticos, configure su lista de miembros estáticos favoritos en la página de Java > Editor > Content Assist > Favoritespreferencias Abre la página de preferencias Favoritos .
Por ejemplo, si ha agregado java.util.Arrays.*o org.junit.Assert.*a esta lista, todos los métodos estáticos de este tipo que coincidan con el prefijo de finalización se agregarán a la lista de propuestas.

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

ingrese la descripción de la imagen aquí


5

Para las pruebas SpringFramework, también recomendaría agregar lo siguiente

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

Cuando agrega arriba como nuevo Tipo, agrega automáticamente. * Al paquete.



2

Seleccione la constante, escriba

Ctrl + 1  (quick fix)

Seleccione "Convertir a importación estática". desde el menú desplegable.

La "Solución rápida" tiene opciones aunque no sea un error.


1

En Eclipse 4.9, puede importar estáticamente las invocaciones existentes utilizando una solución rápida.

Se ha implementado una nueva solución rápida que permite al usuario convertir accesos de campo estático y métodos estáticos para usar una importación estática. También es posible reemplazar todas las ocurrencias al mismo tiempo.

Más detalles aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.