Cuando venís de otros lenguajes, es común esperar algo como esto:
import com.ejemplo.A as A1; // ❌
Pero en Java esto simplemente no existe.
¿Qué son los alias en imports?
Un alias permite:
- Importar dos clases con el mismo nombre
- Y diferenciarlas con nombres alternativos
Ejemplo típico en otros lenguajes:
Kotlin
import com.ejemplo.a.Clase as ClaseA
import com.ejemplo.b.Clase as ClaseB
Scala
import com.ejemplo.a.{Clase => ClaseA}
import com.ejemplo.b.{Clase => ClaseB}
C#
using ClaseA = Ejemplo.A.Clase;
using ClaseB = Ejemplo.B.Clase;
¿Qué pasa en Java?
Si tenés dos clases con el mismo nombre:
import com.ejemplo.a.Clase;
import com.ejemplo.b.Clase; // ❌ conflicto
Java no sabe cuál usar.
La solución es tenés que usar el nombre completo en al menos uno:
import com.ejemplo.a.Clase;
public class Main {
public static void main(String[] args) {
Clase a = new Clase();
com.ejemplo.b.Clase b = new com.ejemplo.b.Clase();
}
}
¿Por qué Java no tiene alias?
El lenguaje prioriza:
- Simplicidad
- Legibilidad explícita
- Evitar ambigüedades en compilación
No hay transformación de nombres en imports
Problemas reales que genera:
- Código más verboso
- Menor ergonomía
- Conflictos frecuentes en proyectos grandes
- Difícil integración entre librerías con naming similar
Java no soporta alias en imports y la solución es usar nombres completos. Pero otros lenguajes modernos sí lo resuelven mejor
