2010-05-07 12 views
17

¿Qué tan importante es convertir todas mis importaciones a static import? ¿Por qué las personas todavía son reacias a usar static import?¿Debo usar la importación estática?

+0

posible duplicado de [¿Qué es un buen caso de uso para la importación estática de métodos?] (Http://stackoverflow.com/questions/420791/what-is-a -good-use-case-for-static-import-of-methods) – Ingo

Respuesta

15

Como dicen los documentos, úselo sparingly. Busca las justificaciones.

+4

¡Buena respuesta, nunca pensé en consultar la fuente! – javaguy

0

Yo diría que nunca use las importaciones de comodines estáticos.

Sin wildcarding, en la medida que sea necesario, creo que reduce el desorden.

8

Este es un caso especial, pero también es el caso perfecto uso (y lo uso en todas mis pruebas):

import static junit.framework.Assert.*; 

Aquí, me parece que esto hace que mis pruebas más fácil de leer y es obvio desde donde assertXXX viene de. Pero esta es una excepción. En otras situaciones, encuentro que la importación estática hace las cosas más oscuras, más difíciles de leer y realmente no las uso.

+0

+1 lo he visto con frecuencia en mi código :-) –

1

Uso un static import solo en las situaciones más obvias. Recuerde: el código conciso no siempre es lo mismo que el código legible.

3

Uso la importación estática cuando trabajo con la afirmación de JUnit (import static org.junit.Assert.*;) y también cuando tengo un enum que está muy vinculado a la clase en cuestión.

Por ejemplo:

archivo Enum:

public enum MyEnum { 
    A, B, C; 
} 

archivo de clase:

import static MyEnum.*; 

public class MyClass { 
    MyEnum e; 

    public setE(MyEnum newE) { 
    if (newE == A) { 
     // some verification 
    } 
    e = newE; 
    } 
} 

Nota cómo pude hacer newE == A, en lugar de newE == MyEnum.A. Es útil si haces muchos de estos en todo el código.

0

Se prefiere el uso de static import si está utilizando un IDE.

+1

¿Por qué razón @fastcodejava? –

0

No es para nada importante convertir el código de trabajo existente, de hecho es solo un costo y riesgo innecesarios.

Puede considerar usarlo para nuevo código, si puede encontrar un uso convincente para él. Todavía no lo he hecho, pero puedo ...