Java: instrucción de importación vs nombre completo?

Intenté encontrar una respuesta a esto en línea y en mi propio conocimiento, pero parece que no puedo encontrar una respuesta definitiva y clara.

Supongamos que solo estoy usando una clase de otro paquete que necesita ser importada, digamos myPack.anotherPackage.ClassName .

¿Cuál es la diferencia, en su caso, entre el uso de un estado de importación :

 import myPack.anotherPackage.ClassName; 

versus usar un nombre completamente calificado :

 myPack.anotherpackage.ClassName classInst = new myPack.anotherpackage.ClassName(); 

?

Obviamente, esta pregunta solo se aplica si ClassName solo se usa una vez.

Las declaraciones de importación hacen que su código sea más legible , ya que no está saturando el código con el paquete completo.

En caso de que haya un conflicto de ClassNames , solo en ese caso es aconsejable buscar nombres completos .

Ninguno, en mi opinión. Mire el bytecode: no habrá diferencia.

  javap -c  

1. Se trata más del valor de readability que de la importancia functional .

2. La statement de import proporciona un cleaner code que usar el nombre completo del paquete junto con la class o el nombre de la interface .

3. Pero debe tener cuidado al importar paquetes que son ambiguos.

  `java.awt.List` and `java.util.List` 

Luego debe importar uno completo y uno con el nombre completo del paquete, como a continuación

 import java.util.List; and java.awt.List l = new java.awt.List(); 

Por lo que sé, no hay diferencia. La única diferencia es la verbosidad de tu código. En general, cuanto más detallado es más difícil de leer. ¿Quizás mira el bytecode?

No existe una diferencia real, especialmente para su caso simple específico que se cita aquí. Ver Java: ¿usar importar o un nombre explícito de paquete / clase?

No hay diferencia después de comstackr el código. En ambos casos, el código de byte tendrá nombres completamente calificados, es decir, los nombres de las clases se reemplazan por nombres calificados por el comstackdor de forma automática. Es solo para facilitar la vida de los progtwigdores, donde no tenemos que escribir un nombre completamente calificado para referirnos a una clase.

La importación y el paquete se usan para nombrar y proteger el acceso (predeterminado) Razón simple para esto es que puede haber muchas clases con el mismo nombre.

Para diferenciarlos, debemos separarlos en paquetes e importarlos cuando sea necesario.

No hay diferencia en importar una clase o escribir directamente el nombre completo, sin embargo, hay algunas diferencias de minutos. 1. Lo más importante es si importa todas las clases en el paquete (es decir, importa xyz. *;) Las clases todavía pueden tener problemas de nomenclatura, por ejemplo, si hay varias importaciones generales, puede estar utilizando una clase incorrecta en tiempo de ejecución.

  1. En el caso de cargar clases dinámicamente en tiempo de ejecución, por ejemplo, el registro del controlador JDBC en tiempo de ejecución, debe proporcionar un nombre de clase calificado completo como parámetro para que pueda cargarse dinámicamente.

En uso general siguiendo las mejores prácticas: 1. Nunca use import abc. *; formato de importación y siempre importe clases individuales (eclipse o algún IDE puede corregir automáticamente las importaciones a * y necesita deshabilitar esto) 2. Debe usar un nombre de clase totalmente calificado cuando ya ha importado una clase del mismo nombre y desea usar otra clase con el mismo nombre bajo el mismo progtwig. 3. Espero que ayude 🙂