Los casos en que no son necesarias las importaciones en Java (cualificación inusual) [Pregunta Editado]

StackOverflow https://stackoverflow.com/questions/4705343

  •  11-10-2019
  •  | 
  •  

Pregunta

Me he dado cuenta de que hay algunas formas especiales para calificar una entidad en Java:

Object o = new Outer().new Inner();

En este caso, estamos calificando la clase interna con la clase externa, por lo que sólo necesitamos importar la clase externo:

import mypackage.Outer;

¿Hay otros casos como este? (Es decir, cuando un inusual se produce la calificación - por no decir inusual: fullQualifier.identifier).

Estoy excluyendo el caso de las importaciones automáticas (java.lang, tipos primitivos, etc.)

¿Fue útil?

Solución

Creo que entienden mal el constructo que has descrito:

Object o = new Outer().new Inner();

En realidad, es una forma de calificar totalmente el constructor de la clase Inner, al igual que en

Outer.Inner i = new Outer().new Inner();

Por otro lado, se podría escribir lo siguiente:

import path.to.Outer;
import path.to.Outer.Inner;

// ...

Inner i = new Outer().new Inner();

Otros consejos

Además, no necesitaría importar una clase si:

  • se utiliza la ruta completa del objeto. Por ejemplo:

    java.util.Date d = new java.util.Date();
    
  • la clase es en el mismo paquete

  • la clase es en el paquete java.lang por ejemplo String

el envase exterior, en este caso incluye el envase interno, es por eso que no había necesidad de ti importar el envase interno, en la mayoría de los casos no hay necesidad de importar un paquete completo sólo para utilizar un componente ..for ejemplo, sólo quiero utilizar una cadena, no hay necesidad de importar ti todo el java.lang. En cierto uso bibliotecas complicado si está utilizando algunos entornos de desarrollo que pueden arreglar las importaciones para que, por ejemplo en netbeans Ctrl + Shift + fijaré su importación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top