¿Es una buena práctica de programación usar campos estáticos de importación?

Declaro algunas variables constantes en mi clase SQLiteOpenHelper :

 public static final String USERNAME = "user_name"; public static final String PASSWORD = "password"; 

En una Activity donde crea consultas SQL, importo estos campos:

 import com.mygame.ui.login.LoginInfoSQLiteOpenHelper.*; 

¿Es esta una buena practica?
¿O la forma tradicional de referirse mejor a las constantes?

 LoginInfoSQLiteOpen.USERNAME 

Si miras el código de alguien y ves un campo como

 foo.do(baz, USERNAME); 

Wut (!), ¿De dónde vino esa var?
Search, grep, donde se declara?

Usándolo como ClassName.FIELD hace las cosas mucho más claras y más limpias. Evita la confusión, ya veces tiene más sentido tener un nombre de clase apropiado que denota el campo, que un campo que salió de la nada.


Bien, no todo el mundo utiliza un IDE, y no todo el mundo lee el código a través de un IDE (tal vez a través de un repositorio en la web), e incluso algunos consideran VIM un IDE, y uso vim mucho (aunque no lo pienso) Como IDE).
Por lo tanto, no se trata de lo que un IDE puede o no puede hacer, sino más de lo que es la lectura de código . Código de lectura, código de calidad, expresando ideas en su lenguaje de programación de elección, de una manera a través de abstracciones que tienen sentido y atar bien juntos.

Recomiendo el segundo método, sólo la importación de las clases no los campos. Por lo tanto prefijar sus constantes con la clase propietaria, como LoginInfoSQLiteOpen.USERNAME . Puede llegar a ser altamente redundante, pero es mucho más legible y mantenible en el largo plazo.

Unos años tarde a la fiesta … pero creo que vale la pena dar el punto de vista opuesto. Hay una razón por la cual Java fue diseñado para tener importaciones de campo estático, y la razón es ocultar cómo se implementa la clase a los usuarios de la clase. Este es un importante principio de diseño para el código orientado hacia afuera. Estoy de acuerdo con c00kiemon5ter tomar en él, sin embargo, puede haber situaciones en las que vale la pena.

Más información sobre la importación estática de campos se puede encontrar aquí: https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

  • Imposible crear archivo en almacenamiento externo Android
  • Publicar un tweet con la API de Android
  • Menú contextual de Android SMS
  • ¿Cómo comprobar debugable o tipo de compilación de depuración en la biblioteca de Android?
  • Cómo utilizar DecimalFormat para dar formato al dinero?
  • Android Debug almacén de claves
  • ¿Cuáles son los problemas comunes que experimentan los pequeños equipos de desarrollo de Android?
  • Windows 8 - Ejecución de Eclipse (Java VM no encontrada)
  • Oyente de red Android
  • Eclipse: "La importación java.io no se puede resolver"
  • Dibujar objeto personalizado curvado en LIBGDX?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.