jueves, 26 de diciembre de 2013

Java: static import

Introducción


Hace unos días, programando con el NetBeans 7.3, accidentalmente descubrí una característica de Java que no sabía ni que existía: import static.

Al utilizar la función fix imports del Netbeans 7.3 me dí cuenta, para mi sorpresa, que el NetBeans utilizaba esa directiva para "importar" una constante que tenía definida en otra clase.

¿Para qué sirve?


Pues para muy poca cosa la verdad: para escribir atributos static (normalmente serán constantes) sin tener que poner el nombre totalmente cualificado, es decir, para referenciarlos como si fuesen atributos static de la propia clase desde la que se referencian. Por ejemplo:

package pruebas;

import static java.lang.System.out;

public class StaticImportTest {

    public static void main(String[] args) {
        System.out.println("Using qualified name");
        out.println("Using import static feature");
    }

}

En el ejemplo, en la primera sentencia se referencia System.out con el nombre cualificado, sin embaro, en la segunda sentencia se referencia dicho atributo como si fuese un atributo más de la clase StaticImportTest.

Conclusiones


Llevo años programando en Java y jamás lo había usado, y en principio, seguiré sin hacerlo, porque prefiero escribir en qué clase está cada constante cuando la referencio desde otra, pero como muchas otras cosas, es cuestión de gustos.

Puede resultar útil cuando se hace un uso masivo de algún atributo, pero se pierde la información visual de que no se trata de un atributo propio ni heredado, sino que se está referenciando un atributo de otra clase. Con las constantes es aceptable, pero con atributos static no constantes (que no sea final), en mi humilde opinión, no es una buena idea.


Enlaces


Enlaces de interés relacionados con este artículo:


(Actualizado 26/12/2013)

No hay comentarios:

Publicar un comentario