Cambie el nombre de la importación en Java o importe dos clases con el mismo nombre

Resuelto Federer asked hace 14 años • 9 respuestas

En Python puedes hacer:

from a import b as c

¿Cómo harías esto en Java? Tengo dos importaciones que chocan.

Federer avatar Mar 15 '10 21:03 Federer
Aceptado

No existe ningún mecanismo de alias de importación en Java. No puede importar dos clases con el mismo nombre y usar ambas sin calificar.

Importe una clase y use el nombre completo para la otra, es decir

import com.text.Formatter;

private Formatter textFormatter;
private com.json.Formatter jsonFormatter;
Bozho avatar Mar 15 '2010 14:03 Bozho

Como ya se indicó en las otras respuestas, Java no proporciona esta característica.

La implementación de esta característica se ha solicitado varias veces, por ejemplo, como JDK-4194542: alias de nombre de clase o JDK-4214789: Ampliar la importación para permitir el cambio de nombre del tipo importado .

De los comentarios:

Ésta no es una petición irrazonable, aunque no es esencial. El uso ocasional de nombres completos no es una carga indebida (a menos que la biblioteca realmente reutilice los mismos nombres simples a derecha e izquierda, lo cual es un mal estilo).

En cualquier caso, no pasa el listón de precio/rendimiento para un cambio de idioma.

Así que supongo que no veremos esta característica en Java en el corto plazo :-P

siegi avatar Sep 12 '2015 10:09 siegi

Probablemente valga la pena señalar que Groovy tiene esta característica :

import java.util.Calendar
import com.example.Calendar as MyCalendar

MyCalendar myCalendar = new MyCalendar()
sfussenegger avatar Feb 06 '2015 09:02 sfussenegger

Java no te permite hacer eso. Deberá hacer referencia a una de las clases por su nombre completo y solo importar la otra.

sepp2k avatar Mar 15 '2010 14:03 sepp2k

Hoy presenté un borrador JEP a OpenJDK sobre esta función de alias. Espero que lo reconsideren.

Si está interesado, puede encontrar un borrador de la JEP aquí: https://gist.github.com/cardil/b29a81efd64a09585076fe00e3d34de7

Chris Suszyński avatar Aug 07 '2019 13:08 Chris Suszyński