style guides google code java import order

guides - Orden de las declaraciones de importación en Java



google style guides (8)

De las Directrices de estilo de programación de Java

Las declaraciones de importación deben seguir la declaración del paquete. Las declaraciones de importación se deben ordenar primero con los paquetes más fundamentales y se deben agrupar con paquetes asociados y una línea en blanco entre grupos.

..... .....

La ubicación de la declaración de importación es impuesta por el lenguaje Java. La clasificación hace que sea fácil navegar por la lista cuando hay muchas importaciones, y facilita la determinación de las dependencias del presente paquete. La agrupación reduce la complejidad al colapsar la información relacionada en una unidad común.

Consulte el enlace del Tutorial de Java para obtener más información.

Solo para saber. ¿Cuál es la forma correcta de ordenar las declaraciones de importación? También, ¿qué tiene más legibilidad?

me gusta,

  • Clases externas (como java.util.List ) y luego paquete interno
    clases
  • Solo en orden alfabético

Gracias por adelantado.


El más preferido, y utilizado en la mayoría de IDE, es el orden alfabético, comenzando desde el nivel de dominio y un nombre de clase completamente calificado.

java.* y javax.* tiene prioridad, y el resto está ordenado.

Ejemplo:

import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import com.neurologic.http.HttpClient; import com.neurologic.http.impl.ApacheHttpClient;


No estoy seguro de si hay un estándar. Pero algunos proyectos como Android usan la siguiente regla.

  1. Primero importar archivos específicos del proyecto (Android)
  2. En segundo lugar vienen los archivos y la biblioteca de terceros.
  3. Los archivos api estándar de Java.

Cada grupo está separado por una línea adicional. Y cada grupo tiene sus importaciones en orden alfabético.

AFAIK estos se basan en nuestra preferencia.


Prefiero el orden alfabético: este es el más legible, ¿no?


Prefiero esto :

1) Importaciones del primer grupo basadas en API internas y externas 2) Alfabéticamente dentro de cada grupo


Solo uso el orden predeterminado que implementa mi IDE (Eclipse) ... y ejecuto regularmente la función "Tidy Imports" para mantener la casa en orden.

La legibilidad no es una preocupación importante si automatizas esto. Te acostumbrarás rápidamente a cualquier pedido automático, sin importar de qué se trate. Además, las personas tienden a no leer las importaciones de todos modos.


La mayoría de los IDEs hace este trabajo muy bien. Simplemente haga clic derecho y diga "Organizar Importaciones".


Como han mencionado otros, si está usando un IDE como Eclipse o IntelliJ, la legibilidad no es una gran preocupación porque comienza a confiar en que la organización es automática y perfecta.

El área única, entonces, donde el orden importa, está definiendo la precedencia si tiene múltiples clases con el mismo nombre potencialmente importado mediante una notación. .* .

Por ejemplo, supongamos que tiene java.util.List y org.northpole.christmas.List disponibles y especifica las importaciones java.util.* Y org.northpole.christmas.* Entonces, en este caso, tiene sentido tener java.util.* más alto que org.northpole.christmas.* porque si realmente no estaba prestando tanta atención y estaba leyendo el código más tarde, supongo que List es java.util.List y no es otra cosa. Esta es la razón por la que, creo, Eclipse tiene java y javax primero, luego org.apache , y luego otros. Estos días también deslizo com.google en arriba o abajo org.apache .